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

高洛峰
發布: 2017-03-01 15:38:15
原創
1683 人瀏覽過

在做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中文網!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!