淺談js中startsWith函數(shù)不能在任何瀏覽器兼容的問(wèn)題
在做js測(cè)試的時(shí)候用到了startsWith函數(shù),但是他并不是每個(gè)瀏覽器都有的,所以我們一般要重寫一下這個(gè)函數(shù),具體的用法可以稍微總結(jié)一下。
在有些瀏覽器中他是undefined 所以我們可以這樣的處理一下
- if (typeof String.prototype.startsWith != 'function') {
- String.prototype.startsWith = function (prefix){
- return this.slice(0, prefix.length) === prefix;
- };
- }
這個(gè)需要放在頁(yè)面剛要加載完成的函數(shù)里,不然不好使。
還有一種直接重寫 不過(guò)我沒測(cè)試過(guò),你們可以測(cè)試一下:
- 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;
- }
有的說(shuō)js中沒有startsWith 和endWith這兩個(gè)函數(shù)不過(guò)就算不聲明有些瀏覽器他還是可以用的,不過(guò)為了兼容性還是希望重寫一下。
- if (typeof String.prototype.endsWith != 'function') {
- String.prototype.endsWith = function(suffix) {
- return this.indexOf(suffix, this.length - suffix.length) !== -1;
- };
- }
采用正則表達(dá)式實(shí)現(xiàn)startWith、endWith效果函數(shù)
- String.prototype.startWith=function(str){
- var reg=new RegExp("^"+str);
- return reg.test(this);
- }
- //測(cè)試ok,直接使用str.endWith("abc")方式調(diào)用即可
- String.prototype.endWith=function(str){
- var reg=new RegExp(str+"$");
- return reg.test(this);
- }
以上這篇淺談js中startsWith 函數(shù)不能在任何瀏覽器兼容的問(wèn)題就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,