2010-07-14 43 views
0

所以我一直在玩js中的替換函數(method?)。js取代全球不喜歡+?

$get('msgBar').replace(/+/g,' '); 

讓我們假設$ get('msgBar')的內容是「Welcome + back + now」。

replace('+',' ')只會取代第一個+,而不是第二個。

replace(/+/g,' ')崩潰

replace(/"+"/g,' ')replace(/\+/g,' ')都是一樣的第一

我敢肯定,該解決方案是很容易... :)

回答

6

您必須引用+:

$get('msgBar').replace(/\+/g,' '); 

'+'是元字符,如'*'。這意味着「再重複一次」。它你真的想'+',那麼你必須用反斜槓引用它。

+1

具體而言,您必須引用它,因爲'+'在正則表達式中有含義,而替換的第一個參數用作正則表達式,而不是用於比較的裸字符串... – 2010-07-14 16:13:28

+0

不幸的是,我已經試過就像原來的帖子一樣),並且不管什麼原因都不起作用......也就是說,只有第一個+被替換。 – 2010-07-14 16:13:54

+0

不,你沒有。你忘了'g' - 這意味着「全局匹配」,並指示正則表達式來查找和替換**所有**匹配。 – 2010-07-14 16:16:52