Javascript 有人知道为什么吗;x";。拆分(/(x)/)。长度在IE中返回0?

Javascript 有人知道为什么吗;x";。拆分(/(x)/)。长度在IE中返回0?,javascript,regex,internet-explorer,Javascript,Regex,Internet Explorer,在IE中,“x”.split(/(x)/).length返回0 在Firefox、Chrome、Safari和Opera中,它返回3 有人知道原因吗?如有可能,请提供参考链接 我相信这是一个IE正则表达式的实现问题,但我找不到任何关于这方面的文档 例如,这里有一些实现问题,这是正确的。IE忽略空值并捕获正则表达式中的块 所以 "foo".split(/o/) 给 [f] 其他浏览器提供了什么 ["f","",""] 当您添加捕获时: "foo".split(/(o)/) IE执行相同的操

在IE中,
“x”.split(/(x)/).length
返回
0

在Firefox、Chrome、Safari和Opera中,它返回
3

有人知道原因吗?如有可能,请提供参考链接


我相信这是一个IE正则表达式的实现问题,但我找不到任何关于这方面的文档

例如,这里有一些实现问题,这是正确的。IE忽略空值并捕获正则表达式中的块

所以

"foo".split(/o/)

[f]
其他浏览器提供了什么

["f","",""]
当您添加捕获时:

"foo".split(/(o)/)
IE执行相同的操作,但其他人将捕获的分隔符添加到结果数组中,以给出

["f","o","","o",""]

因此,不幸的是,您可能需要避免使用split,或者围绕这些问题编写代码。

对于split的坏IE实现,我也有同样的问题


这里有一个小文件,它完美地解决了这个问题。

IE6,7,8据我所知