SyntaxError: negated character class with strings in regular expression

Der JavaScript-Ausnahmefehler "negated character class with strings in regular expression" tritt auf, wenn eine v-Modus-Zeichenklasse negiert wird und möglicherweise einen String (mehr als ein Zeichen) matchen kann.

Meldung

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)

Fehlertyp

Was ist schiefgelaufen?

Im v-Modus können Zeichenklassen mehr als ein Zeichen matchen. Zum Beispiel würde /[\q{abc}]/v die Sequenz "abc" matchen, und /[\p{RGI_Emoji_Flag_Sequence}]/v würde jede Zeichenfolge matchen, die eine Emoji-Flaggen-Sequenz darstellt. Allerdings dürfen negierte Zeichenklassen [^...] keine Strings matchen, daher ist /[^\p{RGI_Emoji_Flag_Sequence}]/v ungültig, da unklar ist, wie viele Zeichen sie matchen sollen. Für weitere Informationen siehe die Referenz der v-Modus-Zeichenklasse.

Beispiele

Ungültige Fälle

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

Gültige Fälle

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

Siehe auch