Spec-Zone.ru › JavaScript

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)

Тип ошибки

SyntaxError

Что пошло не так?

В регулярном выражении \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;

См. также

  • Регулярные выражения
  • Escape-последовательности
  • Экранирование символов: \n, \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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API