IE浏览器上面无法直接使用startsWith 、endsWith 函数
1.项目中需要有些地方需要兼容IE浏览器,遇到了无法使用startsWith,endsWith 函数的情况,查了一下是因为没有这两个函数
解决办法:
//startsWith
//首先判断该浏览器环境下该函数是否为一个方法
//下面就是indexOf函数的用法()
/**
stringObject.indexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。
它的合法取值是 0 到 stringObject.length - 1。
如省略该参数,则将从字符串的首字符开始检索。
*/
if (typeof String.prototype.startsWith !== 'function') {
String.prototype.startsWith = function(prefix) {
return this.slice(0, prefix.length) === prefix;
};
}
//endsWith
if (typeof String.prototype.endsWith !== 'function') {
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
}
可以再ie中使用’111.doc’.indecOf(’.doc’)这样的用法
ie中需要使用Array.indexof的时候,按照下面的来(没有具体测试过)
if (!Array.prototype.indexOf) {
Array.prototype.indexOf = function (elt /*, from*/) {
var len = this.length >>> 0;
var from = Number(arguments[1]) || 0;
from = (from < 0)
? Math.ceil(from)
: Math.floor(from);
if (from < 0)
from += len;
for (; from < len; from++) {
if (from in this &&
this[from] === elt)
return from;
}
return -1;
};
}