我在使用正则表达式替换字符串中的 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/