跨浏览器javascript拆分

时间:2013-04-16 00:28:17

标签: javascript internet-explorer

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

var step1_slices = "One.Two.".split(new RegExp("\\.", "g"));
alert(step1_slices.length);

我是第一个遇到这个问题的人还是有一个已知的解决方案?

1 个答案:

答案 0 :(得分:2)

  

我是第一个遇到此问题的人

不,当分隔符位于字符串的开头或结尾时,较旧的浏览器实现了不同的分割。有些人将空字符串保留在两端,有些保留最后一个,有些像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;
}