美文网首页
E8浏览器对JavaScript中的endswith,start

E8浏览器对JavaScript中的endswith,start

作者: wetCoder | 来源:发表于2019-07-26 15:39 被阅读0次

    wetCoder

    一个湿身的程序员,在编程的路上,一路爬行~

    IE8浏览器对JavaScript中的endswith,startWith,trim,indexOf等方法(不支持)不兼容等问题处理

    • 出现场景
      近期在做项目的过程中,想要通过使用JavaScript 中的indexof 方法判断集合是否包含某个元素、使用endswith方法判断字符串中是否以某某结束的判断,在google、360、firefox等浏览器都没有问题,最后在IE8浏览器情况下测试,竟然出现了“该对象不支持indexof” 与“该对象不支持endswith”等报错。后来通过查询资料了解IE8 对js 的方法提供有限。所以需要修改方式来兼容不同版本的浏览器。以下为方式:
      1、对于Array 的indexof 来说,我们可以试用jquery中提供的$.inArray()方法,eg:$.inArray("1", levelArray)!=-1 这样判断levelArray中是否存在“1”这个字符串。这样就避免了之前使用indexof时IE8 不支持的问题。
      2、对于String 的endswith来说,我们可以重写endswith 方法,也就是在js 中先重写如下代码:
    String.prototype.endWith=function(s){
        if(s==null||s==""||this.length==0||s.length>this.length)
            return false;
        if(this.substring(this.length-s.length)==s)
            return true;
        else
            return false;
        return true;
    }
    String.prototype.startWith=function(s){
            if(s==null||s==""||this.length==0||s.length>this.length)
                return false;
            if(this.substr(0,s.length)==s)
                return true;
            else
                return false;
            return true;
    }
    

    然后在使用这个endWith方法。

    if("0" == limitAreaLevel && id.toString().length != 2 ){
      alert("业务逻辑视自己代码情况而定");
     }
    

    这样的话就避免了IE8 对endswith 不支持的问题!

    wetCoder

    一个湿身的程序员,在编程的路上,一路爬行~

    相关文章

      网友评论

          本文标题:E8浏览器对JavaScript中的endswith,start

          本文链接:https://www.haomeiwen.com/subject/ywcdrctx.html