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

const str = "Hello world, world!";
const newStr = str.replace(/world/g, "JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"
使用 split 和 join 组合
将字符串按匹配项分割为数组,再用新字符串连接:

const str = "Hello world, world!";
const newStr = str.split("world").join("JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"
ES2021 原生 replaceAll 方法
现代浏览器支持原生 replaceAll 方法:
const str = "Hello world, world!";
const newStr = str.replaceAll("world", "JavaScript");
console.log(newStr); // "Hello JavaScript, JavaScript!"
注意事项
- 正则表达式方法需注意特殊字符转义,例如替换
.需使用/\./g replaceAll在旧版本浏览器中可能需要 polyfill- 性能上,
split+join通常比正则表达式更快
Polyfill 实现
如需兼容旧环境,可添加以下 polyfill:
if (!String.prototype.replaceAll) {
String.prototype.replaceAll = function(str, newStr) {
return this.replace(new RegExp(str, 'g'), newStr);
};
}






