Typescript не может анализировать именованные группы в регулярных выражениях
У меня есть строка кода
regex = /^(?<aa>[0-9]{2})-(?<bb>[0-9]{6})-(?<cc>[0-9]{6})-(?<d>[0-9])$/;
И машинопись (или это веб-пакет?) Жалуется:
Module parse failed: Error parsing regular expression: Invalid regular expression: /^(?<aa>[0-9]{2})-(?<bb>[0-9]{6})-(?<cc>[0-9]{6})-(?<d>[0-9])$/: Invalid group (18:23)
You may need an appropriate loader to handle this file type.
Кажется, проблема с именованными группами. Это действительное регулярное выражение в JavaScript.
Я использую машинопись 2.9.2
Я настоятельно предпочитаю использовать именованные группы. Что я могу сделать, чтобы они скомпилировались?
Это на самом деле не является допустимым регулярным выражением в JavaScript согласно https://regexr.com/. И Firefox и Edge.
Вернее, это зависит от браузера. Поддержка именованных групп была добавлена в ES2018. Так что ваш пробег может отличаться.
См. Http://kangax.github.io/compat-table/es2016plus/ для совместимости.
Компилятор Typescript - это не тот, кто выдает ошибку, это ваш загрузчик модуля webpack. Я попытался бы установить цель на ES2018 и посмотреть, работает ли это.
В качестве альтернативы см. Ответ о деструктуризации массива в именованных группах захвата в регулярном выражении JavaScript? ,
Попробуй это:
regex= "/^(?<aa>[0-9]{2})-(?<bb>[0-9]{6})-(?<cc>[0-9]{6})-(?<d>[0-9])$/";
Вы также можете проверить свой RegEx на regex101.com.
- Вопросы
- Typescript
- Typescript не может анализировать именованные группы в регулярных выражениях