javascript - 替换javascript中所有出现的包含特殊字符的字符串

标签 javascript regex

我想替换 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/

相关文章:

javascript - 在 XSLT 中进行大小写选择的良好编码风格

javascript - 选择 2 : cannot read property 'id' of undefined

javascript - 如何在 React 中使用 github api 来显示 github 用户信息?

java - 如何替换正则表达式中的组?

javascript - Angular SCE 信任 rootScope 函数中的 HTML 变量

javascript - 如何以屏幕阅读器仍会阅读文本并向用户指示它已被禁用的方式将单选按钮设置为 "disable"?

c - 删除 C 中的部分字符串(正则表达式?)

regex - 从 bash 脚本中的正则表达式捕获组

java - 用于验证单词不包含数字或特殊字符的正则表达式

javascript - 语法错误 : Invalid regular expression: nothing to repeat