2010-03-18 48 views
2

爲什麼下面的JS表達式:奇怪的Javascript正則表達式替換後向引用行爲

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

結果在下面的字符串?

"test1 test2 test2" 

是替換字符串中的$'某種控制代碼包括賽後一切???

這種行爲一天中的大部分時間都與我無關。任何人都可以解釋嗎?

非常感謝

PS-這是所有瀏覽器我測試過

回答

6

在正則表達式替換參數的情況下,你需要躲避$

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

$'刀片匹配子字符串後面的字符串部分。
查看documentation

+0

對,很酷。我知道你需要擺脫美元符號(例如0美元或1美元的情況),但不知道美元的用途。感謝您的鏈接 – arshaw 2010-03-18 01:36:32