js 实现replaceall
实现 JavaScript 的 replaceAll 方法
在 JavaScript 中,字符串的 replace 方法默认只会替换第一个匹配项。要实现替换所有匹配项的功能(类似 replaceAll),可以采用以下方法:
使用正则表达式全局替换
通过正则表达式配合 g 标志实现全局替换:

const str = "apple banana apple";
const newStr = str.replace(/apple/g, "orange");
console.log(newStr); // "orange banana orange"
使用 split 和 join 组合
通过分割字符串再重新组合的方式实现替换:

const str = "apple banana apple";
const newStr = str.split("apple").join("orange");
console.log(newStr); // "orange banana orange"
ES2021 的 replaceAll 方法
现代浏览器和 Node.js 已原生支持 replaceAll:
const str = "apple banana apple";
const newStr = str.replaceAll("apple", "orange");
console.log(newStr); // "orange banana orange"
自定义 polyfill 函数
为兼容旧环境可自定义实现:
if (!String.prototype.replaceAll) {
String.prototype.replaceAll = function(search, replacement) {
return this.split(search).join(replacement);
};
}
注意事项
- 正则表达式方法中特殊字符需要转义
- 原生
replaceAll在 Safari 14+ 和 Node.js 15+ 才完全支持 - 性能上
split+join通常优于正则表达式






