IE浏览器上面无法直接使用startsWith 、endsWith 函数

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;
    };
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值