c++ string replace_String.prototype.replaceAll 替换字符串新方法

0a937926fc808aac5e51a012365b4ca8.png
通常我们使用JavaScript处理字符串的时候会使用replace方法。String.prototype.replace(searchValue, replacement)指定字符串及所需替换为某一字符串,最后返回一个被替换过的字符串。那么,接下来看看关于replaceAll()方法。
String.prototype.replaceAll 替换字符串新方法​www.deathghost.cn
2aae664726ac9efa8f0786fe2ef38eb3.png

原始方法

使用replace()方法后,我们常见的一个问题就是replace()不能替换所有指定的字符串。因为它仅替换第一次出现的子字符串。

'abbc'.replace('b', '_');
// 输出则是: "a_bc"
'       '.replace(' ', ' ')
// 输出:       

我们可以看到仅替换了第一个字符串。那么,对于开发人员通常会使用带有global(g)标志的正则表达式进行处理。

'       '.replace(/ /g, ' ')
// 输出:"       "

对于前端开发人员而言,这是一种方法,但若复杂一点,很容出错,也比较麻烦。

另外一种方法就是使用stringObject.split(separator,howmany)结合arrayObject.join(separator)方法处理。

// 如:将中间的加号“+”替换为空。
's=a+b+c'.split('+').join(' ');
// 则输出:"s=a b c"
'       '.split(' ').join(' ')
"       "

看上去也还不错,但总感觉别扭,拆分后又合并连接起来。

c1a3bc6286012060f124e0719c32c68c.png

接下来,我们了解下新方法。

String.prototype.replaceAll 新方法

新方法replaceAll()可以解决上面所述问题,字面意思我们也可以理解,并提供了一种简单的机制来执行全局子字符串替换。

'       '.replaceAll(' ', ' ')
// 输出:"       "
's=a+b+c'.replaceAll('+', ' ');
// => "s=a b c"

为了与现有API保持一致,其String.prototype.replaceAll(searchValue, replacement)处理方式与String.prototype.replace(searchValue, replacement)完全相同。

因此,String.prototype.replaceAll通过提供对全局字符串替换,而无需使用正则表达式或其他解决方法。

特殊替换方式

// 第一种
'abcde'.replaceAll('c', '$$')
// 第二种
'abcde'.replaceAll('c', '$&')

结果是:

// 第一种输出结果
"ab$de" 而非 "ab$$de"
// 第二种输出结果
"abcde" 而非 "ab$&de"

浏览器String.prototype.replaceAll支持情况

现代浏览器最新版均可支持,具体查看这里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更这些源码资源,以适应各平台技术的最发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值