Prototype.replaceAll()不工作

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

var a = "::::::";
a = a.replace(":", "hi");
console.log(a);

上面的代码只替换了第一个字符串,即.hi:::::: 我用了 replaceAll但是没用。

167283 次浏览

更新: 所有主流浏览器的最新版本以及 NodeJS15 + 现在都支持 replaceAll

原文:

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

相反,在 replace中使用带有正则表达式参数的 /g(“ match global”)修饰符:

const a = "::::::";
const replaced = a.replace(/:/g,"hi");
console.log(replaced);

这是涵盖在 替换字符串(和其他地方)。

JavaScript 中没有 replaceAll函数。

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

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

一些人喜欢的另一种替代方法是使用 JavaScript 的 splitjoin函数,因为它可以消除对正则表达式的需求,如下所示:

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

然而,值得注意的是,第二种方法比较慢。