JavaScript .replace不会替换所有实例

时间:2012-10-04 14:23:51

标签: javascript replace

  

可能重复:
  Javascript multiple replace
  How do I replace all occurrences of "/" in a string with "_" in JavaScript?

在JavaScript中,"11.111.11".replace(".", "")会产生"11111.11"。怎么会这样?

Firebug屏幕截图:
Firebug Screenshot

3 个答案:

答案 0 :(得分:32)

引自the doc

  

要执行全局搜索和替换,请在其中包含g开关   正则表达式或如果第一个参数是字符串,则包含   g在flags参数中。 注意:   flags参数在v8 Core(Chrome和Node.js)中不起作用,将从Firefox中删除。

所以它应该是:

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

此版本(编辑时)在Firefox中可以正常工作...

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

...但是,正如在MDN页面上所指出的那样,它的支持很快就会被取消。

答案 1 :(得分:7)

使用正则表达式和标记g,您获得了预期结果

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

使用正则表达式的重要性,因为:

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

is not standard

答案 2 :(得分:3)

首先,replace()是一个javascript函数,而不是一个jquery函数。

以上代码仅替换第一次出现的"。" (并非每次都发生)。要替换JavaScript中每次出现的字符串,必须为replace()方法提供一个带有全局修饰符作为第一个参数的正则表达式,如下所示:

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