js中瀏覽器兼容startsWith 、endsWith 函數


在做js開發的時候用到了startsWith函數時,發現各個瀏覽器不兼容問題,因為對開發來說,chrome瀏覽器最好用,就一直在chrome瀏覽器中使用這兩個函數沒有任何問題,但在ie瀏覽器訪問就直接報錯,因為ie沒有這兩個函數,要么修改方法,換別的方法,但是一兩個還好改,多了就不好改,這個時候就只能擴充String方法。

 

先判斷瀏覽器是否有當前方法,沒有則添加

 

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

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

 

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

// 使用正則表達式
String.prototype.startsWith = function(str) {
    var reg = new RegExp("^" + str);
    return reg.test(this);
}

//測試ok,直接使用str.endsWith("abc")方式調用即可  
String.prototype.endsWith = function(str) {
    var reg = new RegExp(str + "$");
    return reg.test(this);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM