Javascript正则表达式问题:没有什么可重复的

时间:2015-03-25 02:34:18

标签: javascript regex

replacedStr = replacedStr.replace(/&^*/g, "asdfasdf");

我需要用这个正则表达式替换all:

/&^*/g

但它无法正常工作,我可以在Chrome中看到错误消息无需重复

这个正则表达式有什么问题?

2 个答案:

答案 0 :(得分:0)

^是正则表达式中的一个特殊元字符,它匹配行边界的起点。为了匹配文字^符号,您需要在正则表达式中转义^符号。

我认为你正在尝试实现类似下面的内容。

> 'foo&^*'.replace(/&\^\*/g, "asdfasdf")
'fooasdfasdf'
> 'foo&^^'.replace(/&\^*/g, "asdfasdf")
'fooasdfasdf'

答案 1 :(得分:0)

“无需重复”错误来自元字符的不正确转义。 ^*都考虑特殊字符,这意味着字符串锚点的开头,*是重复运算符。要真正匹配这些字符,您需要正确地逃避它们。

/&\^\*/g

如果您想在任何地方替换这些字符,请考虑使用character class

/[&^*]/g