以编程方式将字符串转换为模板字符串
在 Javascript 中,可以使用反引号 ( ) 或 来定义字符串模板。然而,在某些情况下,您可能会遇到这样的情况:您的字符串类似于模板字符串,但在语法上并非如此。
例如,您可能有一个类似于以下内容的字符串:
let a = "b:${b}";
并且您想稍后将其转换为有效的模板字符串。
需要注意的是,使用 eval 或 new Function 等方法进行动态代码生成出于安全原因不建议使用。反而。您可以利用 ES6 中实现的 String.prototype.interpolate 方法,如下所示:
String.prototype.interpolate = function(params) { const names = Object.keys(params); const vals = Object.values(params); return new Function(...names, `return \`${this}\`;`)(...vals); };
利用此方法,您可以按以下方式转换字符串:
let b = 10; console.log(a.interpolate({ b }));
输出将为 b:10,这表明变量 b 已成功插值到字符串 a 中。
以上是如何以编程方式安全地将字符串转换为 JavaScript 中的模板文字?的详细内容。更多信息请关注PHP中文网其他相关文章!