我有一个工作的reg exp:
var re = /([^\wåäö]*?)([\wåäö]+)([^\wåäö&]?|$)|.+/ig;
当我用这个替换它时,它不再起作用了:
var re = new RegExp("([^\wåäö]*?)([\wåäö]+)([^\wåäö&]?|$)|.+", "ig");
这两个不应该相同吗?
答案 0 :(得分:2)
\
是正则表达式和字符串中的转义字符。您需要在第二版中加倍\
。
答案 1 :(得分:1)
您应该使用\
转义\\
。例如,当您在正则表达式文字(\w
)中键入/\w/
时,它会遵循正则表达式语法(在w
之后允许\
)。当你在字符串中执行相同的操作时,它遵循字符串语法,但不允许它。所以,你应该写"\\w"
来实现相同的效果(换句话说,RegExp的source
将是\w
)。