为了账号安全,请及时绑定邮箱和手机立即绑定

js 字符串 replace replaceAll

var str = "男的女的老的少的";
alert(str.replace('的',''));
可以看到替换后的str的值为"男女的老的少的",replace(str1,str2)方法替换的只是第一个匹配的字符串,那么如何实现替换全部匹配的字符串呢?
在java语言中有给出的replaceAll方法能够实现这样的功能,但很遗憾javascript没有提供这样的方法,但replace方法要比我们想象的强大,实际上通过它我们可以实现我们的需求的。

给出replace的语法定义

stringObj.replace(rgExp, replaceText)

其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。

第一个例子是参数rgExp 为字符串的情况,下面我们用正则表达式实现全部替换的功能

var str = "男的女的老的少的";
alert(str.replace(new RegExp(/(的)/g),''));
以上实现了字符串的全部替换,但这种正则表达式是有局限的,匹配的是一些特定的字符串,如何匹配动态的字符串呢?

var replaceStr = "的";
alert(str.replace(new RegExp(replaceStr,'gm'),''));
这样我们就完成了匹配字符串的动态赋值。

另外还有其他的方法实现全部替换

alert(str.split(replaceStr).join(''));
网上查到一种方法,感觉不可取

复制代码
function ReplaceAll(str, sptr, sptr1){
while (str.indexOf(sptr) >= 0){
str = str.replace(sptr, sptr1);
}
return str;
}
复制代码
调用这个方法执行以下代码的话,会陷入死循环的

var ss = 'abc';
alert(ReplaceAll(ss,'b','bc'));

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
168
获赞与收藏
3550

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消