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

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,startWith,trim,indexOf等方法(不支持)不兼容等问题处理)