SyntaxError: invalid regexp group
JavaScript-исключение "invalid regexp group" возникает, когда последовательность (? не начинает допустимый синтаксис группы. Распознаваемые синтаксисы групп, начинающиеся с (?, включают:
-
(?:для незахватывающих групп -
(?=для позитивного просмотра вперед -
(?!для негативного просмотра вперед -
(?<=для позитивного просмотра назад -
(?<!для негативного просмотра назад -
(?<для именованных захватывающих групп -
(?-i:,(?i:,(?m:,(?ims-:и т. д. для модификаторов
(?, за которым следует любой другой символ, приведет к этой ошибке.
Сообщение
SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based) SyntaxError: invalid regexp group (Firefox) SyntaxError: Invalid regular expression: unrecognized character after (? (Safari)
Тип ошибки
Что пошло не так?
? не является атомом, поэтому нет смысла в его появлении в начале захватывающей группы (? является квантификатором и должен располагаться после атома). Возможно, вы хотите сопоставить символ ? буквально, в этом случае его следует экранировать обратной косой чертой (\?). Возможно, вы неправильно запомнили синтаксис регулярных выражений и намереваетесь использовать один из вышеперечисленных распознаваемых синтаксисов групп. Возможно, вы используете функцию, которая не поддерживается текущим движком JavaScript.
Примеры
Недопустимые случаи
/Hello(?|!)/;
// This is Perl syntax
/(?[\p{Thai}&\p{Digit}])/;
Допустимые случаи
/Hello(\?|!)/;
// This is JavaScript syntax for character set operations
/[\p{Script=Thai}&&\p{Nd}]/v;
См. также
- Регулярные выражения
- Захватывающая группа:
(...) - Просмотр вперед:
(?=...),(?!...) - Просмотр назад:
(?<=...),(?<!...) - Модификатор:
(?ims-ims:...) - Именованная захватывающая группа:
(?<name>...) - Незахватывающая группа:
(?:...)
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Regex_invalid_group