在JavaScript中,如何替换所有出现的字符串?

发布时间 2023-10-10 20:42:07作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=在JavaScript中,如何替换所有出现的字符串?

给定一个字符串:

s = "Test abc test test abc test test test abc test test abc";

这似乎只删除了上面字符串中的第一个abc

s = s.replace('abc', '');

如何替换所有的的出现?


在大多数流行浏览器的最新版本中,您可以使用 replaceAll,如下所示:

let result = "1 abc 2 abc 3".replaceAll("abc", "xyz");
// `result` 是 "1 xyz 2 xyz 3"

但首先检查 Can I use 或其他兼容性表,以确保您的目标浏览器已经添加了对它的支持。


对于 Node.js 和与旧版/非当前浏览器的兼容性:

注意:不要在性能关键代码中使用以下解决方案。

作为针对简单字面字符串的正则表达式的替代方案,您可以使用

str = "Test abc test test abc test...".split("abc").join("");

一般模式是

str.split(search).join(replacement)

这在某些情况下比使用 replaceAll 和正则表达式更快,但在现代浏览器中似乎已经不再是这样了。

基准测试:https://jsben.ch/TZYzj

结论:

如果您有性能关键用例(例如处理数百个字符串),请使用正则表达式方法。但对于大多数典型用例,这值得不必担心特殊字符。