Javascript正则表达式没有重复错误

时间:2016-12-25 14:31:35

标签: javascript regex

我试图用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)

我理解如果你没有重复错误,这意味着你没有正确地转义你的正则表达式中的一个角色,但为什么我会在这种情况下得到这个错误?

1 个答案:

答案 0 :(得分:2)

*是保留的重复字符,匹配前一个字符或组的0或更多倍,因此您需要将其转义(相当于{0,})。

将分隔符字符串更改为\\*\\*\\*\\*{3}

delim = '\\*{3}'
input = 'hello *** world'
var re = new RegExp(delim, 'g');
console.log(input.replace(re, ","))