Spec-Zone.ru › JavaScript

SyntaxError: недопустимое имя свойства в регулярном выражении

Ошибка JavaScript "invalid property name in regular expression" (недопустимое имя свойства в регулярном выражении) или "invalid class property name in regular expression" (недопустимое имя свойства класса в регулярном выражении) возникает, когда \p и \P Unicode escape-последовательности классов символов не сопровождаются допустимым именем свойства Unicode и/или значением.

Сообщение

SyntaxError: Invalid regular expression: /\p{x}/u: Invalid property name (V8-based)
SyntaxError: Invalid regular expression: /[\p{x}]/u: Invalid property name in character class (V8-based)
SyntaxError: invalid property name in regular expression (Firefox)
SyntaxError: invalid class property name in regular expression (Firefox)
SyntaxError: Invalid regular expression: invalid property expression (Safari)

Тип ошибки

SyntaxError

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

В режиме, чувствительном к Unicode, \p и \P escape-последовательности используются для сопоставления символов или последовательностей символов на основе их свойств Unicode. \p escape-последовательность сопоставляет символы с указанным свойством Unicode, тогда как \P escape-последовательность сопоставляет символы без указанного свойства Unicode. Синтаксис:

\p{loneProperty}
\P{loneProperty}

\p{property=value}
\P{property=value}

Если за ним не следует {, затем распознаваемое имя свойства/значение, затем }, возникает эта ошибка синтаксиса. Дополнительную информацию о допустимых одиночных свойствах и именах свойств см. в справке по Unicode escape-последовательностям классов символов.

Примеры

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

/\p{x}/u; // "x" is not a valid Unicode property name
/\p{Script=x}/u; // "x" is not a valid value for Script
/\property/u; // "\p" is not followed by the right syntax
/\p{RGI_Emoji_Flag_Sequence}/u;
// "RGI_Emoji_Flag_Sequence" is a property of strings, so the "v" flag must be used
/\P{RGI_Emoji_Flag_Sequence}/v; // \P cannot match properties of strings

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

/\p{Script=Latin}/u; // "Script=Latin" is a valid Unicode property
/\p{Letter}/u; // "Letter" is valid value for General_Category
/\p{RGI_Emoji_Flag_Sequence}/v; // Property of strings can only be used in "v" mode

См. также

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

Spec-Zone.ru

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