以程式設計方式將字串轉換為範本字串
在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中文網其他相關文章!