在 ES12 中,新增了一个非常实用的方法:String.prototype.replaceAll()。该方法可以用来替换字符串中的所有匹配项,相比于以前的 replace() 方法,不需要使用正则表达式全局匹配。
语法
String.prototype.replaceAll(searchValue, replaceValue)
- searchValue: 要替换的字符串或正则表达式。
- replaceValue: 要替换成的字符串或函数。
示例
const str = 'hello world, hello javascript!'; const newStr = str.replaceAll('hello', 'hi'); console.log(newStr); // hi world, hi javascript!
const str = 'hello world, hello javascript!'; const newStr = str.replaceAll(/hello/g, 'hi'); console.log(newStr); // hi world, hi javascript!
const str = 'hello world, hello javascript!'; const newStr = str.replaceAll(/hello/g, (matched) => matched.toUpperCase()); console.log(newStr); // HELLO world, HELLO javascript!
应用场景
替换所有匹配项
使用 replace() 方法时,只会替换第一个匹配项。如果要替换所有匹配项,则需要使用正则表达式全局匹配。而使用 replaceAll() 方法,则可以直接替换所有匹配项,非常方便。
替换字符串中的特定字符
在前端开发中,我们经常需要对字符串中的特定字符进行替换,以达到特定的展示效果。使用 replaceAll() 方法可以更加方便地实现这一目标。
优化代码
使用 replaceAll() 方法能够使代码更加简洁和易于阅读,同时也能提高代码的执行效率。
注意事项
- replaceAll() 方法是在 ES12 中新增的,如果要在较早的版本中使用该方法,需要使用 polyfill 或者使用第三方库来实现。
- 由于 replaceAll() 方法使用正则表达式进行匹配,因此在处理大量数据时需要注意性能问题。
总结
ES12 中的 String.prototype.replaceAll() 方法可以用来替换字符串中的所有匹配项,相比于以前的 replace() 方法,更加方便和实用。在实际开发中,我们可以根据具体的需求来灵活使用该方法,从而优化代码并提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656dfb5bd2f5e1655d632e1e