京品吉橡胶强人线缆有限公司

js中startsWith 函数不兼容浏览器的处理

2017-03-03  来源:新网巢  我有话说  收藏本文  阅读  次

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

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

 if (typeof String.prototype.startsWith != 'function') {
  String.prototype.startsWith = function (prefix){
  return this.slice(0, prefix.length) === prefix;
  };
}

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

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

String.prototype.startWith=function(str){ 
 if(str==null||str==""||this.length==0||str.length>this.length) 
  return false; 
 if(this.substr(0,str.length)==str) 
   return true; 
 else 
   return false; 
 return true; 
} 

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

if (typeof String.prototype.endsWith != 'function') {
 String.prototype.endsWith = function(suffix) {
 return this.indexOf(suffix, this.length - suffix.length) !== -1;
 };
}

采用正则表达式实现startWithendWith效果函数:

String.prototype.startWith=function(str){
var reg=new RegExp("^"+str);
return reg.test(this);
}
//测试ok,直接使用str.endWith("abc")方式调用即可
String.prototype.endWith=function(str){
var reg=new RegExp(str+"$");
return reg.test(this);
} 

本篇结束,感谢阅读。

(责编:边缘)

声明:原文出自//article.nxpop.com/js/1468.html ,文章观点仅代表原作者,转载请注明出处。

新网巢是非商业性和非盈利性的个人运营网站,文章仅供个人站长及爱好者学习交流使用,如涉及侵权,烦请告知,以便及时删除。

已有条评论
匿名评论

用微信扫一扫

新网巢