IE11 регулярное выражение неожиданный результат - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть это регулярное выражение /(\d\d|\d).(\d\d|\d)/, и я выполняю его на 06/16/2018 в качестве входной строки.В Chrome он работает как положено, давая ["06/16", "06", "16"] в качестве результатов матча.В IE11 он дает мне ["2018", "20", "8"] в качестве результата.Однако, когда я пытаюсь воссоздать его непосредственно в консоли, он отлично работает в обоих браузерах.Есть идеи, что здесь может происходить?

Для фона это на самом деле выполняется в сторонней библиотеке flatpickr v4.5.0, но я отлаживаю этот код, чтобы увидеть, что происходит.

См. Скриншот ниже от отладчика IE11 для примера.Я не могу понять, как это могло произойти.

Screenshot from IE Debugger

Это не имеет никакого смысла для меня, как (\d\d|\d).(\d\d|\d) может соответствовать 06/16/2018 как 2018 вместо 06/16.Также обратите внимание на свойство match index.11?Как это вообще возможно?Длина входной строки составляет всего 10.

Вот ссылка на кодовую песочницу , где это продемонстрировано.

1 Ответ

0 голосов
/ 20 сентября 2018

В итоге я выяснил проблему, поэтому я хотел найти здесь кого-нибудь, кто обнаружит это в будущем.

Как вы можете видеть по ссылке в изолированной программной среде кода, которую я разместил выше, я получалформатированная строка даты с использованием Date.toLocaleDateString .По-видимому, в IE11 (и Edge), есть некоторые дополнительные символы слева направо, которые отбрасывают разбор отформатированного значения даты.Как только я избавился от этих персонажей, эта проблема была решена.

Для справки, вот проблема GitHub, которую я открыл для отслеживания этой проблемы: https://github.com/IBM/carbon-components-react/issues/1325

...