推荐答案
String.prototype.replaceAll 是 JavaScript 中的一个字符串方法,用于将字符串中所有匹配的子字符串替换为指定的新字符串。它返回一个新的字符串,原始字符串不会被修改。
本题详细解读
语法
str.replaceAll(searchValue, replaceValue)
searchValue: 可以是字符串或正则表达式,表示要被替换的子字符串或模式。replaceValue: 替换后的新字符串,或者是一个函数,用于生成替换字符串。
使用场景
- 替换所有匹配的子字符串:与
String.prototype.replace不同,replaceAll会替换所有匹配的子字符串,而不仅仅是第一个匹配项。 - 处理全局替换需求:在处理需要全局替换的场景时,
replaceAll比replace更加直观和方便。
示例
const str = "Hello world, world!";
const newStr = str.replaceAll("world", "JavaScript");
console.log(newStr); // 输出: "Hello JavaScript, JavaScript!"注意事项
- 如果
searchValue是一个正则表达式,必须包含全局标志g,否则会抛出TypeError。 replaceAll是 ES2021 引入的新特性,因此在较旧的 JavaScript 环境中可能不支持。
与 replace 的区别
replace只会替换第一个匹配项,除非使用带有全局标志g的正则表达式。replaceAll则无需使用全局标志,直接替换所有匹配项。
兼容性
replaceAll在现代浏览器和 Node.js 12+ 中支持良好。如果需要在不支持的环境中实现类似功能,可以使用带有全局标志的正则表达式或手动实现替换逻辑。