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
/[^\p{RGI_Emoji_Flag_Sequence}]/v;
Gültige Fälle
// Matches two characters that are not an emoji flag sequence
/(?!\p{RGI_Emoji_Flag_Sequence})../v;