Javascript replaceAll无法正常工作

时间:2012-11-12 08:04:48

标签: javascript

  

可能重复:
  Replacing all occurrences of a string in javascript?

我需要替换变量中的所有字符串。

<script>
var a="::::::";
a = a.replace(":","hi");
alert(a);
</script>

以上代码仅替换第一个字符串,即.. hi::::::

我使用了replaceAll,但它无效。

请指导我,谢谢

2 个答案:

答案 0 :(得分:24)

JavaScript中没有replaceAll:错误控制台可能报告错误。

相反,使用/g(“匹配全局”)修饰符和replace的正则表达式参数:

var a="::::::";
a = a.replace(/:/g,"hi");
alert(a);

MDN: String.replace(以及其他地方)涵盖了这一点。

答案 1 :(得分:10)

JavaScript中没有replaceAll函数。

您可以使用带有全局标识符的正则表达式,如pst的答案所示:

a.replace(/:/g,"hi");

有些人喜欢的替代方案,因为它消除了对正则表达式的需求,就是使用JavaScript的splitjoin函数,如下所示:

a.split(":").join("hi");

值得注意的是,第二种方法更慢。