ie下string.split的一个诡异bug

2016-6-21 13:24

做了一个多值的combobox控件

发现页面ie下存在bug,跟踪后发现在string.split函数上出了问题。比如如下代码

console.log('74/'.split(/\/\s*/));

输出居然是

["74"]

chrome下是正常的,结果为

["74", ""]

做了个简单的html页面做测试发现也是正常的。就是放在我们系统框架下就是有问题的,并且我确定没有修改string的原型。没时间来查找这个bug产生的源头,就做了个简单hack,代码如下

    function split(val) {
        //fix ie bug
        var tt = val.replace(/\/\s*$/, '/mytempnouse').split(/\/\s*/);
        if (tt[tt.length - 1] == 'mytempnouse')
            tt[tt.length - 1] = '';
        return tt;
    }

结果就正确了

点击:loading..
收藏到:中国收客网
评论