SyntaxError: недопустимый escape-символ идентичности в регулярном выражении
Ошибка JavaScript "invalid identity escape in regular expression" возникает, когда регулярное выражение с учетом Unicode содержит последовательность экранирования, которая не представляет собой распознанную последовательность экранирования.
Сообщение
SyntaxError: Invalid regular expression: /\q/u: Invalid escape (V8-based) SyntaxError: invalid identity escape in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid escaped character for Unicode pattern (Safari)
Тип ошибки
Что пошло не так?
В режиме, не учитывающем Unicode, \ мог использоваться для экранирования любого символа, включая те, у которых нет определенного значения. В этих случаях экранированный символ представляет сам себя. Например, \q соответствовал бы символу q. Это значительно ограничивает возможность добавления новых последовательностей экранирования в будущем, поэтому в режиме с учетом Unicode разрешены только распознанные последовательности экранирования. Не добавляйте \ избыточно.
Эта ошибка также возникает, когда экранирование символа \x не сопровождается двумя шестнадцатеричными цифрами.
Исчерпывающий список доступных последовательностей экранирования см. в справочнике по регулярным выражениям. Таблицу символов, которые могут встречаться буквально экранированными или неэкранированными в каждом контексте, см. в литеральных символах.
Примеры
Недопустимые случаи
/[\f\v\n\t\ ]/u;
Допустимые случаи
// There's no need to escape the space /[\f\v\n\t ]/u;
См. также
- Регулярные выражения
- Последовательности экранирования
- Экранирование символов:
\n,\u{...} - Литеральный символ:
a,b
© 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_identity_escape