SyntaxError: недопустимый десятичный escape-код в регулярном выражении
Исключение JavaScript "invalid decimal escape in regular expression" возникает, когда устаревшая восьмеричная escape-последовательность используется в регулярном выражении с учетом Unicode.
Сообщение
SyntaxError: Invalid regular expression: /\00/u: Invalid decimal escape (V8-based) SyntaxError: invalid decimal escape in regular expression (Firefox) SyntaxError: Invalid regular expression: invalid octal escape for Unicode pattern (Safari)
Тип ошибки
Что пошло не так?
В регулярном выражении \0, за которой следует другая цифра, является устаревшей восьмеричной escape-последовательностью. Тот же синтаксис запрещен в шаблонных строках и строковых литералах в строгом режиме. В регулярных выражениях эта функция отключена режимами с учетом Unicode (u и v). \0, за которой НЕ следует другая цифра, является допустимой escape-последовательностью, представляющей нулевой символ (U+0000).
\, за которой следует ненулевая цифра, является обратной ссылкой и недопустима в режиме с учетом Unicode, если она не ссылается на захватывающую группу; см. недопустимый escape-код идентификатора для получения дополнительной информации.
Примеры
Недопустимые случаи
/\00/u; /\01/u;
Допустимые случаи
// If you want to match NULL followed by a digit, use a character class /[\0]0/u; // If you want to match a character by its character value, use \x /\x01/u;
См. также
© 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_decimal_escape