首頁  >  文章  >  web前端  >  js中startsWith 函數不能在任何瀏覽器相容的問題

js中startsWith 函數不能在任何瀏覽器相容的問題

高洛峰
高洛峰原創
2017-03-01 15:38:151764瀏覽

在做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中沒有startsWith 和endWith這兩個函數不過就算不宣告有些瀏覽器他還是可以用的,不過為了相容性還是希望重寫一下。

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

採用正規表示式實作startWith、endWith效果函數

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);
}

以上這篇js中startsWith 函數不能在任何瀏覽器相容的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持PHP中文網。

更多js中startsWith 函數不能在任何瀏覽器相容的問題相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn