千家信息网

js如何全部替代一个子串为另一个子串

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,本篇文章为大家展示了js如何全部替代一个子串为另一个子串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。如果需要全量替换字符串,可以使用 String.prot
千家信息网最后更新 2025年01月24日js如何全部替代一个子串为另一个子串

本篇文章为大家展示了js如何全部替代一个子串为另一个子串,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

如果需要全量替换字符串,可以使用 String.prototype.replace(re, replacer),其中正则表达式需要开启 global flag

const s = 'foo foo foo'
s.replce(/foo/g, 'bar')

那如题中,是否可以使用正则表达式来替代子串

答:「不可以,因为使用子串构建正则时,有可能有特殊字符」,如下

> 'hello. helloX hello3 '.replace(new RegExp('hello. ', 'g'), 'A')
< "AAA"

而在 javascript 中替换子串只能使用一种巧妙的办法:str.split('foo').join('bar')

> 'hello. hello. hello. '.split('hello. ').join('A')
< "AAA"

真是一个巧(笨)妙(拙)的办法啊!!!!!「大概 TC39 也意识到了一个问题,于是出了一个新的 API」,在 ESNext

String.prototype.replaceAll()

'aabbcc'.replaceAll('b', '.');
// 'aa..cc'

总结(及直接答案)

两种办法

  • str.split('foo').join('bar')
  • str.replaceAll('foo', 'bar'),在 ESNext 中,目前支持性不好

上述内容就是js如何全部替代一个子串为另一个子串,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0