在做js開發的時候用到了startsWith函數時,發現各個瀏覽器不相容問題,因為對開發來說,chrome瀏覽器最好用,就一直在chrome瀏覽器中使用這兩個函數沒有任何問題,但在ie瀏覽器訪問就直接報錯,因為ie沒有這兩個函數,要麼修改方法,換別的方法,但是一兩個還好改,多了就不好改,這個時候就只 ...
在做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); }