Кто-либо знает, почему “x” .split (/(x)/) .length возвращается 0 в IE?

В IE, "x".split(/(x)/).length возвраты 0

В Firefox, Chrome, Safari и Opera, это возвращается 3.

Кто-либо знает причину почему? Если возможно, ссылка будет значительно цениться.

Я полагаю, что это - IE regex проблема реализации, но я не могу найти документ об этом.

6
задан YOU 26 January 2010 в 04:04
поделиться

2 ответа

Вы правы, что есть проблемы с реализацией. IE игнорирует пустые значения и блоки захвата в регулярных выражениях.

Таким образом, для

"foo".split(/o/)

IE дает

[f]

, где другие браузеры дают

["f","",""]

, и когда вы добавляете захват:

"foo".split(/(o)/)

IE выполняет то же самое, но другие добавляют захваченный разделитель к результирующему массиву, чтобы получить

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

Так что, к сожалению, вам, вероятно, нужно либо избегать использования split, либо кодировать эти проблемы.

6
ответ дан 10 December 2019 в 00:39
поделиться
3
ответ дан 10 December 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: