2012-01-19 286 views
1

我有一個字符串"aa$bb$cc";我想,以取代它成爲"aa\$bb\$cc"
我已經試過這樣:

var str = "aa$bb$cc" 
str.replace(/$/g, "\\$"); 

但outpus爲"aa$bb$cc\$"

我怎麼能代替它,並得到相同的(正確...)結果在所有瀏覽器中?

回答

2
str = str.replace(/\$/g, "\\$"); 

$正則表達式意味着「行尾」。因此,它將用\$替換所有行的末尾。在正則表達式中轉義$,它起作用。

+0

我試着用'str.replace逃脫它(\\ $/g,「\\ $」);'該死!我試了半個小時,直到放棄! – gdoron

3

你的正則表達式也應該逃過$

/\$/g 

這是因爲它是表示字符串的端部(或線的端部,如果m改性劑使用)一個特殊字符。

+0

我試圖用str.replace(\\ $/g,「\\ $」)逃避它;該死的!我嘗試了半個小時,直到我放棄了! – gdoron

+0

@gdoron:啊,是的,正則表達式不會像字符串文字那樣吞下轉義字符 – 2012-01-19 02:10:21

+1

「詛咒他們!我們恨他們!「(戒指之主......) – gdoron

1

$在正則表達式中有一個特殊的含義,它延伸到字符串的末尾。 ^錨定到字符串的開頭。嘗試逃脫它/\$/g

你基本上是說:「更換‘\ $’行結束

0

試試這個:"aa$bb$cc".replace(/\$/g, "\\$");