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
SyntaxError
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;