В IE, "x".split(/(x)/).length
возвраты 0
В Firefox, Chrome, Safari и Opera, это возвращается 3
.
Кто-либо знает причину почему? Если возможно, ссылка будет значительно цениться.
Я полагаю, что это - IE regex проблема реализации, но я не могу найти документ об этом.
Вы правы, что есть проблемы с реализацией. IE игнорирует пустые значения и блоки захвата в регулярных выражениях.
Таким образом, для
"foo".split(/o/)
IE дает
[f]
, где другие браузеры дают
["f","",""]
, и когда вы добавляете захват:
"foo".split(/(o)/)
IE выполняет то же самое, но другие добавляют захваченный разделитель к результирующему массиву, чтобы получить
["f","o","","o",""]
Так что, к сожалению, вам, вероятно, нужно либо избегать использования split, либо кодировать эти проблемы.