112

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

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

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

4

2 回答 2

196

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

相反,使用/g("match global") 修饰符和正则表达式参数replace

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

MDN中介绍了它:String.replace(和其他地方)。

于 2012-11-12T08:06:29.987 回答
70

JavaScript中没有replaceAll函数。

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

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

split一些人喜欢的替代方法是使用 JavaScript和join函数,因为它消除了对正则表达式的需要,如下所示:

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

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

于 2012-11-12T08:08:42.837 回答