SyntaxError: нечего повторять
Исключение JavaScript "nothing to repeat" (нечего повторять) или "invalid quantifier in regular expression" (недопустимый квантификатор в регулярном выражении) возникает, когда квантификатор в регулярном выражении применяется к пустому выражению или к утверждению.
Сообщение
SyntaxError: Invalid regular expression: /\b+/: Nothing to repeat (V8-based) SyntaxError: Invalid regular expression: /(?=)+/u: Invalid quantifier (V8-based) SyntaxError: nothing to repeat (Firefox) SyntaxError: invalid quantifier in regular expression (Firefox) SyntaxError: Invalid regular expression: nothing to repeat (Safari)
Тип ошибки
Что пошло не так?
Квантификаторы используются для указания того, сколько раз символ или группа символов может встречаться в регулярном выражении. Например, a{3} соответствует символу a ровно три раза. Следовательно, если элемент, предшествующий квантификатору, не является чем-то, что соответствует символам, квантификатор недопустим. Например: квантификаторы в начале захватывающей группы, в начале альтернативы дизъюнкции и т. д. не могут ничего повторять. Утверждения не потребляют символы, поэтому повторять их также бессмысленно.
В режиме, не учитывающем Unicode, существует устаревший синтаксис, который позволяет утверждениям с просмотром вперед иметь квантификаторы. Этот синтаксис устарел, и вам не следует на него полагаться.
Примеры
Недопустимые случаи
/\b+/; // \b is a word boundary assertion, it doesn't consume characters /(*hello*)/;
Допустимые случаи
/b+/; // b is a character, it can be repeated /(\*hello\*)/; // Escape the asterisks to match them literally
См. также
© 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_nothing_to_repeat