SyntaxError: Ungültiger Eigenschaftenname im regulären Ausdruck

Der JavaScript-Fehler "ungültiger Eigenschaftenname im regulären Ausdruck" oder "ungültiger Klassenname im regulären Ausdruck" tritt auf, wenn die \p und \P Unicode-Zeichenklassen-Escapes nicht von einem gültigen Unicode-Eigenschaftsnamen und/oder -wert gefolgt werden.

Meldung

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)

Fehlertyp

Was ist schiefgelaufen?

Im Unicode-bewussten Modus werden die \p und \P Escape-Sequenzen verwendet, um Zeichen oder Zeichensequenzen basierend auf ihren Unicode-Eigenschaften zu matchen. Die \p Escape-Sequenz matched Zeichen mit der angegebenen Unicode-Eigenschaft, während die \P Escape-Sequenz Zeichen ohne die angegebene Unicode-Eigenschaft matched. Die Syntax ist:

regex
\p{loneProperty}
\P{loneProperty}

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

Wenn diese nicht von {, dann einem erkennbaren Eigenschaftsnamen/-wert, dann } gefolgt wird, wird dieser Syntaxfehler ausgelöst. Weitere Informationen darüber, welche alleinstehenden Eigenschaften und Eigenschaftsnamen erlaubt sind, finden Sie im Referenzdokument zu Unicode-Zeichenklassen-Escapes.

Beispiele

Ungültige Fälle

js
/\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

Gültige Fälle

js
/\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

Siehe auch