根据我的测试

"aba".split(/a/).length

退货
  • 1在ie8中
  • Firefox,Chrome,Opera
  • 3

  • 我一直准备处理DOM操作或事件模型中的差异,但是我认为诸如字符串,正则表达式等之类的东西都定义得很好。我说错了吗

    最佳答案

    IE从split结果数组中删除所有未定义或空字符串。

    由于您的问题似乎与标准的存在有关,因此EcmaScript是Javascript世界中最好的匹配项。

    并记录了正则表达式上split的行为:http://www.ecma-international.org/ecma-262/5.1/#sec-15.5.4.14

    从该示例可以明显看出,不应从结果数组中删除空字符串,因此IE(有疑问)是有问题的。

    "A<B>bold</B>and<CODE>coded</CODE>".split(/<(\/)?([^<>]+)>/)
    
        evaluates to the array
    
    ["A", undefined, "B", "bold", "/", "B", "and", undefined,  "CODE", "coded", "/", "CODE", ""]
    

    实际上,浏览器之间还有其他差异。一种解决方案可能是使用cross-browser split regex script,但最好仅了解这些差异并通过适当的测试来处理split返回的数组可能会更好。或使用一些技巧。

    10-05 21:27
    查看更多