在 JavaScript 中替换多次出现的字符串
您可能会发现自己需要在 JavaScript 中替换多次出现的字符串,但是标准string.replace() 方法仅删除第一个实例。如何确保所有出现的内容都被替换?
现代解决方案(ES2021)
现代浏览器现在支持 String.replaceAll() 方法,该方法本身允许您替换字符串的所有实例。只需使用语法:
<code class="js">string = string.replaceAll('abc', '');</code>
旧版浏览器的旧版解决方案
对于旧版浏览器,您可以使用带有 g(全局)标志的正则表达式:
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(find, 'g'), replace); }</code>
转义特殊字符
正则表达式包含特殊字符,因此在为 find 参数传递变量时要小心。使用 escapeRegExp() 函数安全地转义任何特殊字符:
<code class="js">function escapeRegExp(str) { return str.replace(/[.*+?^${}()|[\]\]/g, '\$&'); }</code>
因此,更新后的 ReplaceAll() 函数变为:
<code class="js">function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); }</code>
此解决方案确保指定字符串的所有出现尽管浏览器兼容,但仍会被替换。
以上是如何在 JavaScript 中替换所有出现的字符串的详细内容。更多信息请关注PHP中文网其他相关文章!