奇怪的Javascript正则表达式替换反向引用行为

时间:2010-03-18 00:42:31

标签: javascript regex

为什么以下js表达式:

"test1 foo bar test2".replace(/foo.bar/, "$'")

产生以下字符串?

"test1  test2 test2"

是替换字符串中的$'某种控制代码,用于在匹配后包含所有 ???

这种行为在一天的大部分时间都与我紧张。任何人都能解释一下吗?

非常感谢

ps-我测试的所有浏览器都是这种情况

1 个答案:

答案 0 :(得分:6)

在正则表达式替换参数中,您需要转义$

"test1 foo bar test2".replace(/foo.bar/, "$$'")

$'插入匹配子字符串后面的字符串部分 请参阅documentation