SyntaxError: Negierte Zeichenklasse mit Strings im regulären Ausdruck

Die JavaScript-Ausnahme "negated character class with strings in regular expression" tritt auf, wenn eine v-Modus-Zeichenklasse negiert wird und möglicherweise in der Lage ist, einen String (mehr als ein Zeichen) zu matchen.

Nachricht

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-Flagge darstellt. Allerdings dürfen negierte Zeichenklassen [^...] keine Strings matchen, daher ist /[^\p{RGI_Emoji_Flag_Sequence}]/v ungültig, weil unklar ist, wie viele Zeichen sie matchen sollten. Weitere Informationen finden Sie im v-Modus-Zeichenklasse Referenz.

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