String.prototype.split()兼容问题

作者:袖梨 2022-06-25

String.prototype.split方法的参数支持字符串也支持正则,而在IE6~8(可能更低的IE版本也会有错误,这我就不去测试了)用split切出的数组和遵循W3C标准的浏览器所得到的结果是不一样的

脚本:

 代码如下 复制代码

"a:b:c".split(/(:)/)

Firefox输出:
["a",":","b",":","c"]

IE7/8(含IE9兼容的模式)输出:

 a,b,c

IE9 中文本框中出现了 n时   会把他保留 需要去掉 而IE7/8(含IE9兼容的模式) 中并无出现

比如

12 12

12 12

12 12n12 12 这是IE9 中   而IE7/8(含IE9兼容的模式)是12 1212 12

总结出一个兼容

 代码如下 复制代码

var rgb2Array = function () {
    var test = (" a b c ").split(/s/),
    isWrong = test.length === 3;
   
    return isWrong ? function (str) {
        return str.split(/D+/);
    } : function (str) {
        var ret = str.split(/D+/);
        ret.shift();
        ret.pop();
        return ret;
    };
}();

相关文章

精彩推荐