首頁 >web前端 >js教程 >如何以程式設計方式安全地將字串轉換為 JavaScript 中的模板文字?

如何以程式設計方式安全地將字串轉換為 JavaScript 中的模板文字?

Patricia Arquette
Patricia Arquette原創
2024-12-02 02:01:09494瀏覽

How Can I Programmatically Convert a String to a Template Literal in JavaScript Safely?

以程式設計方式將字串轉換為範本字串

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn