在前端开发中,字符串的处理是非常常见的操作。在 ES11 中,新增了 String.prototype.replaceAll 方法,可以方便地替换字符串中所有匹配的子串。本文将介绍如何使用该方法,并提供示例代码。
语法
String.prototype.replaceAll(searchValue, replaceValue)
其中,searchValue 可以是一个字符串或正则表达式,用于匹配要替换的子串;replaceValue 可以是一个字符串或函数,用于替换匹配到的子串。
示例
替换字符串中的所有匹配子串
const str = 'hello world, hello es11'; const replacedStr = str.replaceAll('hello', 'hi'); console.log(replacedStr); // 'hi world, hi es11'
使用正则表达式替换
const str = 'hello world, hello es11'; const replacedStr = str.replaceAll(/hello/g, 'hi'); console.log(replacedStr); // 'hi world, hi es11'
使用函数替换
const str = 'hello world, hello es11'; const replacedStr = str.replaceAll(/hello/g, (match, index, input) => { return match.toUpperCase() + index; }); console.log(replacedStr); // 'HELLO0 world, HELLO6 es11'
注意事项
- 该方法不会修改原始字符串,而是返回一个新的字符串;
- searchValue 是区分大小写的;
- replaceValue 中可以使用 $&、$`、$'、$1、$2 等特殊变量,分别表示匹配到的子串、匹配子串前的字符串、匹配子串后的字符串、第一个分组匹配到的内容、第二个分组匹配到的内容等。
总结
使用 String.prototype.replaceAll 方法可以方便地替换字符串中所有匹配的子串,提高了字符串处理的效率和便捷性。同时,需要注意该方法的语法和注意事项,以便正确使用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/655c167cd2f5e1655d6298f3