String.prototype.replaceAll() 不工作

2022-08-30 04:55:36

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

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

上面的代码只替换第一个字符串,即我用过,但它不起作用。hi::::::replaceAll


答案 1

更新:所有最新版本的主要浏览器,以及NodeJS 15 +现在支持replaceAll

源语言:

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

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

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

MDN: String.replace(和其他地方)中对此进行了介绍。


答案 2

JavaScript 中没有函数。replaceAll

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

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

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

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

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