js实现replaceall
在JavaScript中,字符串本身没有内置的replaceAll方法(ES2021之前),但可以通过多种方式实现类似功能。以下是几种常见方法:
使用正则表达式全局替换
通过正则表达式的g标志实现全局替换:
const str = "apple orange apple";
const result = str.replace(/apple/g, "banana");
console.log(result); // "banana orange banana"
使用split和join组合
通过分割字符串再重新组合实现替换:
const str = "apple orange apple";
const result = str.split("apple").join("banana");
console.log(result); // "banana orange banana"
ES2021的replaceAll方法
现代浏览器支持原生replaceAll方法:
const str = "apple orange apple";
const result = str.replaceAll("apple", "banana");
console.log(result); // "banana orange banana"
自定义replaceAll函数
创建兼容旧版本的自定义函数:
function replaceAll(str, find, replace) {
return str.replace(new RegExp(find, 'g'), replace);
}
const result = replaceAll("apple orange apple", "apple", "banana");
console.log(result); // "banana orange banana"
处理特殊字符
当替换包含正则特殊字符时需转义:

function escapeRegExp(string) {
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
const result = replaceAll("a.b.c", ".", "-");
console.log(result); // "a-b-c"
选择方法时需考虑浏览器兼容性需求,现代项目可直接使用原生replaceAll,旧项目建议使用正则或自定义函数实现。






