Javascript 替换正则表达式不起作用

标签 javascript regex

我在使用正则表达式替换字符串中的 html 代码时遇到问题。我曾尝试使用匹配的在线正则表达式测试器,但某些原因导致我无法替换。 ${ProductEAN} 是我想要替换的。知道出了什么问题吗?

字符串在这里:

<label for="ProductEAN" id="ProductEAN" class="col-sm-3 control-label">${ProductEAN}</label>

Javascript代码:

let strToReplace = 'ProductEAN';
let reg = new RegExp('/(\$\{'+strToReplace+'\})/','g')
        str.replace(reg,'some text');

最佳答案

RegExp 构造函数不需要在表达式周围添加斜杠 (/.../),这仅适用于正则表达式文字。当您使用反斜杠转义字符时,它们会在传递给构造函数的字符串中转义,但不会转义到实际的正则表达式。他们需要双重转义。因此,将该行更改为:

let reg = new RegExp('\\$\\{'+strToReplace+'\\}','g');

关于Javascript 替换正则表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38403759/

相关文章:

javascript - 我如何向 UI 设计师证明 2 个 div 具有相同的高度和垂直位置?

java - 如何将二进制文字传递给 JavaScript eval?

javascript - 如何在 javascript 字符串匹配中返回 bool true/false 单个字母字符串?

javascript - 检查字符串是否包含电子邮件地址?

javascript - 元素声明为变量与获取元素?

javascript - 如何在css文件中写入javascript值

javascript - 三.JS,改变子3D对象的世界位置

php - 将 htaccess 重写规则移植到 hiphop-php 配置

c# - 最小长度正则表达式

jquery - 为什么 NSRegularExpression 不返回匹配索引?