replaceAll(search, replaceWith)字符串方法用replaceWith替换所有的search字符串,没有任何变通方法 。
我们把所有的duck换成goose:
const search = 'duck'const replaceWith = 'goose';const result = 'duck duck go'.replaceAll(search, replaceWith);result; // => 'goose goose go'
'duck duck go'.replaceAll('duck', 'goose')将所有出现的'duck'字符串替换为'goose',这是简单明了的解决方案 。
3.1 replaceAll()与replace()的区别字符串方法replaceAll(search, replaceWith)和replace(search, replaceWith)的行为方式是一样的,除了两件事:
- 如果search参数是一个字符串,那么replaceAll()用replaceWith替换所有出现的search,而replace()只替换第一次出现的search 。
4. 总结替换所有出现的字符串应该很容易 。但是,JavaScript 很久一段时间没有提供这种方法 。
一种方法是通过搜索字符串将字符串拆分为多个块,将字符串重新连接,然后在块之间放置替换字符串:string.split(search).join(replaceWith) 。这种方法有效,但是很麻烦 。
另一种方法是将String.prototype.replace()与启用了全局搜索的正则表达式一起使用:string.replace(/SEARCH/g, replaceWith) 。
不幸的是,由于必须转义正则表达式的特殊字符,因此在运行时无法轻松地从字符串生成正则表达式 。处理正则表达式以简单地替换字符串的方法非常麻烦 。
最后,
String.prototype.replaceAll()方法可以轻松地直接替换所有出现的字符串:string.replaceAll(search, replaceWith) 。这是第3阶段的提案,但希望很快就会纳入新的JavaScript标准 。
我的建议是使用replaceAll()来替换字符串 。但你需要一个polyfill来使用这个方法 。
你还知道其他替换所有字符串出现的方法吗?欢迎留言讨论 。
作者: Dmitri Pavlutin 译者:前端小智 来源:dmitripavlutin
原文:
https://dmitripavlutin.com/replace-all-string-occurrences-javascript/
【在 JavaScript 中替换所有指定字符 3 种方法】
推荐阅读
- 达摩盘人群圈选思路 达摩盘人群组合技巧
- 怎么开淘宝店及货源 怎么选择网店货源
- 超级店长怎么用 超级店长需要付费吗
- 人流后半月可带套性生活吗?
- 孕妇头疼能针灸吗?
- 以前来事前胸胀痛现在奶头疼怎么回事?
- 为啥一来月经就偏头疼?
- 孕期检查时间一览表
- 没长出疣体的传染几率
- 在淘宝开店首先需要什么流程 开淘宝店需要什么流程