Spec-Zone.ru › JavaScript

SyntaxError: отрицательный класс символов со строками в регулярном выражении

Исключение JavaScript "negated character class with strings in regular expression" возникает, когда v-режим класса символов отрицается и может соответствовать строке (более чем одному символу).

Сообщение

SyntaxError: Invalid regular expression: /[^\p{RGI_Emoji_Flag_Sequence}]/v: Negated character class may contain strings (V8-based)
SyntaxError: negated character class with strings in regular expression (Firefox)
SyntaxError: Invalid regular expression: negated class set may contain strings (Safari)

Тип ошибки

SyntaxError

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

В режиме v классы символов могут соответствовать более чем 1 символу. Например, /[\q{abc}]/v будет соответствовать последовательности "abc", а /[\p{RGI_Emoji_Flag_Sequence}]/v будет соответствовать любой последовательности символов, представляющей флаг эмодзи. Однако отрицательные классы символов [^...] не могут соответствовать строкам, поэтому /[^\p{RGI_Emoji_Flag_Sequence}]/v недействителен, поскольку неясно, скольким символам он должен соответствовать. Для получения дополнительной информации см. справочное руководство по классу символов в режиме v.

Примеры

Недействительные случаи

/[^\p{RGI_Emoji_Flag_Sequence}]/v;

Действительные случаи

// Matches two characters that are not an emoji flag sequence
/(?!\p{RGI_Emoji_Flag_Sequence})../v;

См. также

  • Регулярные выражения
  • Класс символов: [...], [^...]
  • Экранирование класса символов Unicode: \p{...}, \P{...}

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

Spec-Zone.ru

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