本文主要是介绍String.prototype.replaceAll 兼容性问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近同事有遇到一个兼容问题,分享了一下,记录一下
如图,replaceAll() 报错了,查看了下当前chrome浏览器的版本,发现Chrome版本太低,故判定原因为低版本浏览器不支持字符串的replaceAll();
解决办法如下:
1. 用replace 代替 replaceAll (replace结合正则实现replaceAll的效果)
2. 自定义一个replaceAll的实现,挂载在String的原型链上;
String.prototype.replaceAll = function() {}
3. polyfill也是一种解决方案,但有些JS的新标准并没有在所有浏览器上得到支持,在不支持的浏览器上执行一段JS代码,这个JS新特性就可以正常使用,但是需要引入相关的polyfill库,所以不建议;
replace 和 replaceAll 有什么区别呢?
replaceAll(pattern, replacement) 返回一个新字符串,不会改变原字符串;替换所有匹配到的字符串;
replace(pattern, replacement) 返回一个新字符串,替换其中一个或部分字符串;
这篇关于String.prototype.replaceAll 兼容性问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!