在IE中,"x".split(/(x)/).length
会返回0
在Firefox,Chrome,Safari和Opera中,它会返回3
。
有人知道原因吗?如果可能的话,我们将非常感谢参考链接。
我认为这是一个IE正则表达式实现问题,但我找不到任何关于它的文档。
答案 0 :(得分:6)
你有正确的实施问题。 IE都忽略空值并捕获正则表达式中的块。
所以
"foo".split(/o/)
IE给出了
[f]
其他浏览器提供
["f","",""]
当你添加捕获时:
"foo".split(/(o)/)
IE执行相同操作,但其他人将捕获的分隔符添加到结果数组中以提供
["f","o","","o",""]
所以不幸的是,您可能需要避免使用拆分或围绕这些问题进行编码。
答案 1 :(得分:3)
答案 2 :(得分:1)
我遇到了与拆分的IE实施相同的问题。
这是一个小library文件,可以完美地解决问题。