replacedStr = replacedStr.replace(/&^*/g, "asdfasdf");
我需要用这个正则表达式替换all:
/&^*/g
但它无法正常工作,我可以在Chrome中看到错误消息无需重复。
这个正则表达式有什么问题?
答案 0 :(得分:0)
^
是正则表达式中的一个特殊元字符,它匹配行边界的起点。为了匹配文字^
符号,您需要在正则表达式中转义^
符号。
我认为你正在尝试实现类似下面的内容。
> 'foo&^*'.replace(/&\^\*/g, "asdfasdf")
'fooasdfasdf'
> 'foo&^^'.replace(/&\^*/g, "asdfasdf")
'fooasdfasdf'
答案 1 :(得分:0)
“无需重复”错误来自元字符的不正确转义。 ^
和*
都考虑特殊字符,这意味着字符串锚点的开头,*
是重复运算符。要真正匹配这些字符,您需要正确地逃避它们。
/&\^\*/g
如果您想在任何地方替换这些字符,请考虑使用character class。
/[&^*]/g