SyntaxError: необработанная скобка не допускается в регулярном выражении с флагом unicode
Исключение JavaScript "raw bracket is not allowed in regular expression with unicode flag" возникает, когда шаблон регулярного выражения с поддержкой Unicode содержит необработанную скобку ({, }, ]), которая не является частью квантификатора или класса символов.
Сообщение
SyntaxError: Invalid regular expression: /{/u: Lone quantifier brackets (V8-based)
SyntaxError: raw bracket is not allowed in regular expression with unicode flag (Firefox)
SyntaxError: Invalid regular expression: incomplete {} quantifier for Unicode pattern (Safari)
SyntaxError: Invalid regular expression: unmatched ] or } bracket for Unicode pattern (Safari)
Тип ошибки
Что пошло не так?
В режиме без поддержки Unicode {, } и ], которые не являются частью квантификатора или класса символов, обрабатываются как литеральные символы. Это может скрывать ошибки в вашем коде, поэтому такой подход устарел и запрещен в режиме с поддержкой Unicode. Вам следует либо проверить, не является ли синтаксис некорректным, либо экранировать символы, чтобы они соответствовали им буквально.
Если { появляется в контексте, который допускает квантификатор, он рассматривается как начало квантификатора. Если то, что следует за ним, не является допустимым квантификатором, генерируется другая синтаксическая ошибка: неполный квантификатор.
Примеры
Некорректные случаи
/\{{MDN_Macro}}/u;
/\[sic]/u;
Корректные случаи
// All { and } need to be escaped
/\\{\\{MDN_Macro\\}\\}/u;
// The ] needs to be escaped
/\[sic\]/u;
См. также
- Регулярные выражения
- Класс символов:
[...],[^...] - Экранирование символов:
\n,\u{...} - Квантификатор:
*,+,?,{n},{n,},{n,m}
© 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_raw_bracket