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

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

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

===============>>#1 票数: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;
}

  ask by Juan translate from so

未解决问题?本站智能推荐: