String.prototype.replaceAll 兼容性问题

 低版本浏览器普遍不支持replaceAll, 所以谨慎使用此方法。

 

  如图,replaceAll() 报错了,查看了下当前chrome浏览器的版本,发现Chrome版本太低,故判定原因为低版本浏览器不支持字符串的replaceAll();

解决replaceAll 不兼容问题方法:

1. 用replace替代

//replace 默认只会匹配替换到匹配到的第一个,因此要加  / /g
let newStr = string.replace(/oldString/g, newString);

2. 第二种也是用replace方法

let newStr = string.replace(new RegExp( "oldString", "gm" ),"newString");
//  gm:g=global, m=multiLine   可以实现替换全部指定字串

3. 给String对象扩展原型方法  replaceAll

String.prototype.replaceAll = function(newString, oldString) {
        return this.replace(new RegExp("oldString","gm" ),"newString" );
}

replace 和 replaceAll 有什么区别呢?

replaceAll(pattern, replacement) 返回一个新字符串,不会改变原字符串;替换所有匹配到的字符串;

replace(pattern, replacement) 返回一个新字符串,替换其中一个或部分字符串;
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值