2012-10-04 65 views

回答

28

引用從the doc

爲了在 正則表達式執行全局搜索和替換,或者包括克開關,或者如果第一個參數是一個字符串,在flags參數中包含 g。 注意: flags參數在v8 Core(Chrome和Node.js)中不起作用,並且將從Firefox中刪除。

所以它應該是:

"11.111.11".replace(/\./g, ''); 

這個版本(在編輯的時刻)不工作在Firefox ...

"11.111.11".replace('.', '', 'g'); 

...但是,作爲在MDN網頁上指出,它的支持很快就會停止。

+8

在你的第一個例子中的「標誌」參數是不標準,並且不適用於Chrome或IE。 – jvenema

+0

@jvenema謝謝,更新了提及的答案。實際上,在需要全局替換時,我從來沒有在'.replace'第一個參數中使用字符串,所以當看到沒有正則表達式修飾符時仍然可能會有點驚訝。 ) – raina77ow

+0

謝謝你,這是有效的...這是我在整個職業生涯中見過的最無意識的代碼:D – SeToY

7

用正則表達式和標誌g你得到了預期的結果

"11.111.11".replace(/\./g, "") 

重要的是使用正則表達式,因爲這樣的:

"11.111.11".replace('.', '', 'g'); // dont' use it!! 

is not standard

1

首先,更換( )是一個javascript函數,而不是一個jquery函數。

上述代碼僅替換第一個出現的「。」。 (並非每一次出現)。要替換的JavaScript字符串的每次出現,你必須提供replace()方法正則表達式與全球改性劑作爲第一個參數,像這樣:

"11.111.11".replace(/\./g,'')