我想替换 javascript 中出现的所有字符串;
在我的搜索
文本中,我有特殊字符,我无法转义它们;
我需要用给定的字符串替换 ${wid}
文本;
我有这个功能:
function replaceAll(find, replace, str) {
return str.replace(new RegExp(find, 'g'), replace);
}
应该可以完成这项工作;
var inner_code = replaceAll('/\$\{wid\}/', 'id_' + widget.model_attributes.id, widget.code);
widget.model_attributes.id
是一个正整数
widget.code
是:
<div id="code_50"><div id="${wid}"></div>
<script type="text/javascript">
$("#${wid}").text("hello world");
</script></div>
p.s:这不是一个重复的问题;我不知道如何使用 JS 转义特殊字符
最佳答案
您需要转义反斜杠本身。尝试:
replaceAll('\\$\\{wid\\}', 'id_' + ...)
您正在编写 JavaScript 字符串文字。您希望字符串 content 为“\$\{wid\}”,因为这是您想要的 RegExp 源代码。由于反斜杠在字符串文字中表示某种含义,因此您需要对其进行转义(通过在其前面添加另一个反斜杠)。
我建议不要使用replaceAll函数,而只写:
var inner_code = widget.code.replace(/\$\{wid\}/g, 'id_' + widget.model_attributes.id);
这允许您将 RegExp 保留为 RegExp 文字,这比通过字符串文字和 RegExp 构造函数更容易阅读。
关于javascript - 替换javascript中所有出现的包含特殊字符的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20990843/