推荐答案
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+ 中支持良好。如果需要在不支持的环境中实现类似功能,可以使用带有全局标志的正则表达式或手动实现替换逻辑。