我试图用Javascript中的另一个字符串替换字符串并使用Eric Wendelin在How do you use a variable in a regular expression?中给出的答案 - 代码如下:
var re = new RegExp(delim, 'g');
return input.replace(re,",");
当我运行时,我得到错误
/ *** /:无需重复
(delim的值是" ***" btw)
我理解如果你没有重复错误,这意味着你没有正确地转义你的正则表达式中的一个角色,但为什么我会在这种情况下得到这个错误?
答案 0 :(得分:2)
*
是保留的重复字符,匹配前一个字符或组的0或更多倍,因此您需要将其转义(相当于{0,}
)。
将分隔符字符串更改为\\*\\*\\*
或\\*{3}
。
delim = '\\*{3}'
input = 'hello *** world'
var re = new RegExp(delim, 'g');
console.log(input.replace(re, ","))