Behavior of JavaScript string replace
本问题已经有最佳答案,请猛点这里访问。
为什么
1)不起作用的前几位:
1 2 3 4 5 | //the funcion call '999.999.999,00'.replace('.', '') //This replaces only the first match, given as result as below '999999.999,00' |
2)有效,但使用regex:
1 2 3 4 5 | //the funcion call '999.999.999,00'.replace(/\./g, '') //This replaces all matches, given as result as below '999999999,00' |
号
它适合前1种吗?这是
在第一种情况下,您应该将标志作为第三个参数传递:
1 | '999.999.999,00'.replace('.', '', 'g') |
您可以在MDN上找到更多信息。但是,并非所有浏览器都支持这一点,您应该自行承担风险使用它。
对。javascript替换只应替换第一个匹配项。如果要替换同一字符串的多个字符串,则确实应该使用正则表达式。您还可以使用简单的while循环:
1 2 3 | var match = '.'; var str = '999.999.999,00'; while(str.indexOf(match) != -1) str = str.replace(match, ''); |
号
但通常只使用regex要容易得多。但是循环可以更快。对于需要在大文本块上执行的简单替换操作,这可能是相关的。对于较小的替换操作,使用regex很好。