一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

浅谈js中startsWith 函数不能在任何浏览器兼容的问题

时间:2017-03-02 编辑:简简单单 来源:一聚教程网

在做js测试的时候用到了startsWith函数,但是他并不是每个浏览器都有的,所以我们一般要重写一下这个函数,具体的用法可以稍微总结一下

在有些浏览器中他是undefined 所以我们可以这样的处理一下。

 代码如下复制代码

if(typeofString.prototype.startsWith !='function') {

String.prototype.startsWith =function(prefix){

returnthis.slice(0, prefix.length) === prefix;

};

}

这个需要放在页面刚要加载完成的函数里,不然不好使。

还有一种直接重写 不过我没测试过,你们可以测试一下:

 代码如下复制代码

String.prototype.startWith=function(str){

if(str==null||str==""||this.length==0||str.length>this.length)

returnfalse;

if(this.substr(0,str.length)==str)

returntrue;

else

returnfalse;

returntrue;

}

有的说js中没有startsWith 和endWith这两个函数不过就算不声明有些浏览器他还是可以用的,不过为了兼容性还是希望重写一下。

 代码如下复制代码

if(typeofString.prototype.endsWith !='function') {

String.prototype.endsWith =function(suffix) {

returnthis.indexOf(suffix,this.length - suffix.length) !== -1;

};

}

采用正则表达式实现startWith、endWith效果函数

 代码如下复制代码

String.prototype.startWith=function(str){

varreg=newRegExp("^"+str);

returnreg.test(this);

}

//测试ok,直接使用str.endWith("abc")方式调用即可

 代码如下复制代码

String.prototype.endWith=function(str){

varreg=newRegExp(str+"$");

returnreg.test(this);

}

以上这篇浅谈js中startsWith 函数不能在任何浏览器兼容的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持一聚教程网

热门栏目