Spec-Zone.ru › JavaScript

SyntaxError: недопустимый диапазон в классе символов

JavaScript-исключение "invalid range in character class" (недопустимый диапазон в классе символов) возникает, когда класс символов в регулярном выражении использует диапазон, но начало диапазона больше конца.

Сообщение

SyntaxError: Invalid regular expression: /[2-1]/: Range out of order in character class (V8-based)
SyntaxError: invalid range in character class (Firefox)
SyntaxError: Invalid regular expression: range out of order in character class (Safari)

Тип ошибки

SyntaxError

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

В классах символов вы можете соединить два символа с помощью дефиса -, чтобы представить инклюзивный интервал символов на основе их кодовых точек Unicode. Например, [a-z] соответствует любой строчной букве. Однако, если конец диапазона меньше начала, диапазон не сможет соответствовать ничему и, скорее всего, является ошибкой.

Примеры

Недопустимые случаи

/[9-1]/; // The range is out of order
/[_-=]/; // _ has value 95, = has value 61

Допустимые случаи

/[1-9]/; // Swap the range
/[_\-=]/; // Escape the hyphen so it matches the literal character

См. также

  • Регулярные выражения
  • Класс символов: [...], [^...]

© 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_range_in_character_class

Spec-Zone.ru

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