2012-10-04 64 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,'')