29

可能重复:
Javascript 多次替换
如何在 JavaScript 中用“_”替换字符串中所有出现的“/”?

在 JavaScript 中,"11.111.11".replace(".", "")结果为"11111.11". 这个怎么可能?

萤火虫截图:
萤火虫截图

4

3 回答 3

38

从文档中引用:

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

所以应该是:

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

这个版本(在编辑时)确实在 Firefox 中工作......

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

...但是,正如 MDN 页面所指出的,它的支持将很快被删除。

于 2012-10-04T14:25:31.083 回答
9

使用正则表达式和标志g,您得到了预期的结果

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

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

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

不标准

于 2012-10-04T14:26:13.073 回答
4

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

上面的代码只替换了第一次出现的“。” (不是每次出现)。要替换 JavaScript 中每个出现的字符串,您必须为 replace() 方法提供一个正则表达式,并以全局修饰符作为第一个参数,如下所示:

"11.111.11".replace(/\./g,'')
于 2012-10-04T14:46:07.123 回答