2012-10-11 34 views
2

可能重複:
Why does javascript replace only first instance when using replace?我如何能與jQuery或JavaScript替換裏面的可變文本

我有這個變量

var newRow = "<td><div> [[myvar]]</div> <div> [[myvar]]</div> </td> " 

當我這樣做

newRow = newRow.replace('[[myvar]]', '10'); 

僅限首次出現被替換,而不是第二

+0

請參閱[本] [1]答案。這幾乎是同一個問題。 [1]:http://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace – David

回答

8

您可以使用正則表達式

newRow = newRow.replace(/\[\[myvar\]\]/g, '10'); 

有多個替代品沒有其他簡單的解決方案。需要注意的是:

+0

我不理解,如果我有完全匹配,爲什麼我需要有正則表達式。我的意思是功能替換是相同的,爲什麼正則表達式工作,但不是簡單的字符串 – user825904

+0

在Javascript中,替換函數實際上是基於正則表達式。默認情況下,替換隻碰到第一個問題。 'g'標誌設置全局匹配選項。感謝好友 –

+0

。我不知道我什麼時候看到正則表達式,我的心開始像我看到老虎一樣快速抽動 – user825904

0

使用此:

newRow = newRow.replace(new RegExp('[[myvar]]', 'g'), '10');