我需要替换变量中的所有字符串。
<script>
var a="::::::";
a = a.replace(":","hi");
alert(a);
</script>
以上代码仅替换第一个字符串,即.. hi::::::
我使用了replaceAll
,但它无效。
请指导我,谢谢
答案 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的split
和join
函数,如下所示:
a.split(":").join("hi");
值得注意的是,第二种方法更慢。