在 JavaScript 中,"11.111.11".replace(".", "")
结果为"11111.11"
. 这个怎么可能?
萤火虫截图:
在 JavaScript 中,"11.111.11".replace(".", "")
结果为"11111.11"
. 这个怎么可能?
萤火虫截图:
从文档中引用:
要执行全局搜索和替换,请在正则表达式中包含 g 开关,或者如果第一个参数是字符串,请在 flags 参数中包含 g。注意: flags 参数在 v8 Core(Chrome 和 Node.js)中不起作用,将从 Firefox 中删除。
所以应该是:
"11.111.11".replace(/\./g, '');
这个版本(在编辑时)确实在 Firefox 中工作......
"11.111.11".replace('.', '', 'g');
...但是,正如 MDN 页面所指出的,它的支持将很快被删除。
使用正则表达式和标志g
,您得到了预期的结果
"11.111.11".replace(/\./g, "")
使用正则表达式很重要,因为:
"11.111.11".replace('.', '', 'g'); // dont' use it!!
首先,replace() 是一个 javascript 函数,而不是 jquery 函数。
上面的代码只替换了第一次出现的“。” (不是每次出现)。要替换 JavaScript 中每个出现的字符串,您必须为 replace() 方法提供一个正则表达式,并以全局修饰符作为第一个参数,如下所示:
"11.111.11".replace(/\./g,'')