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; }
结果就正确了