欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

扩展ie中不兼容的startsWith,endsWith方法

程序员文章站 2022-07-16 14:16:16
...

最近发现之前项目的代码在ie11下没法正常运行,报的错是

对象不支持“startsWith”属性或方法

之后我顺便也试了下endsWith,发现也不行

扩展ie中不兼容的startsWith,endsWith方法

之前看javascript权威指南时,里面说过可以通过扩展原型方法来添加一些操作

网上找了个链接https://www.jb51.net/article/45419.htm参考下。

 

我的总体思路是:1.如果浏览器支持startsWith方法,就用原有的;如果不支持,就用自己扩展的(可以通过短路操作||来实现)

2.找的链接里是纯手工实现,我采用正则来进行首尾匹配,代码相对简洁些

修改后的代码如下:

String.prototype.startsWith = String.prototype.startsWith || function (str) {
    var reg = new RegExp("^" + str);
    return reg.test(this);
}
String.prototype.endsWith = String.prototype.endsWith || function (str) {
    var reg = new RegExp(str + "$");
    return reg.test(this);
}

把上面的代码放到一个公共js文件里(比如:common.js),然后让这个js在你会用到的startsWith和endsWith的地方之前加载就可以了

 

参考链接:https://www.jb51.net/article/45419.htm