交叉浏览器javascript拆分

交叉浏览器javascript拆分,javascript,internet-explorer,Javascript,Internet Explorer,我需要一个“拆分”功能,它将以相同的方式在8开始的每个IE版本上工作(是的,只有IE,因为这是用于使用控件的应用程序)。以下代码将对IE 8上的“2”和IE 9+上的“3”发出警报: var step1_slices = "One.Two.".split(new RegExp("\\.", "g")); alert(step1_slices.length); 我是第一个遇到这个问题的人还是有一个已知的解决方案 我是第一个遇到这个问题的人吗 不,当delimeter位于字符串的开头或结尾时,较旧

我需要一个“拆分”功能,它将以相同的方式在8开始的每个IE版本上工作(是的,只有IE,因为这是用于使用控件的应用程序)。以下代码将对IE 8上的“2”和IE 9+上的“3”发出警报:

var step1_slices = "One.Two.".split(new RegExp("\\.", "g"));
alert(step1_slices.length);
我是第一个遇到这个问题的人还是有一个已知的解决方案

我是第一个遇到这个问题的人吗

不,当delimeter位于字符串的开头或结尾时,较旧的浏览器以不同的方式实现拆分。有些保留两端的空字符串,有些保留最后一个,有些像IE一样,只保留字符串主体中的空匹配。现代浏览器都保持了两者的领先优势

解释任何差异的最简单方法是使IE9+的行为类似于IE8—查看数组的第一个和最后一个元素,如果它们未定义或为空字符串,则删除它们

String.prototype.split8=function(delim){
  var A=this.split(delim);
  if(!A[0])A.shift();
  if(!A[A.length-1)A.pop();
  return A;
}

为什么不
“一.二.”.split('..)
?这只是一个示例。我需要的是一个分裂,将工作在每个IE版本采取正则表达式。如果我真的想把字符串“1.2”分开,我会用手把点分开。