SyntaxError: raw bracket is not allowed in regular expression with unicode flag
Der JavaScript-Ausnahmefehler "raw bracket is not allowed in regular expression with unicode flag" tritt auf, wenn ein Unicode-bewusstes reguläres Ausdrucksmuster eine rohe Klammer ({
, }
, ]
) enthält, die nicht Teil eines Quantors oder einer Zeichenklasse ist.
Meldung
SyntaxError: Invalid regular expression: /{/u: Lone quantifier brackets (V8-based) SyntaxError: raw bracket is not allowed in regular expression with unicode flag (Firefox) SyntaxError: Invalid regular expression: incomplete {} quantifier for Unicode pattern (Safari) SyntaxError: Invalid regular expression: unmatched ] or } bracket for Unicode pattern (Safari)
Fehlertyp
Was ist schiefgelaufen?
Im Unicode-unbewussten Modus werden {
, }
und ]
, die nicht Teil eines Quantors oder einer Zeichenklasse sind, als literale Zeichen behandelt. Dies kann Fehler in Ihrem Code verbergen und ist daher im Unicode-bewussten Modus veraltet und nicht erlaubt. Sie sollten entweder prüfen, ob Sie ungültige Syntax haben oder die Zeichen escapen, um sie wörtlich zu behandeln.
Erscheint {
in einem Kontext, der einen Quantor akzeptiert, wird es als Beginn eines Quantors behandelt. Wenn das, was darauf folgt, kein gültiger Quantor ist, wird ein weiterer Syntaxfehler, unvollständiger Quantor, ausgelöst.
Beispiele
Ungültige Fälle
/{{MDN_Macro}}/u;
/\[sic]/u;
Gültige Fälle
// All { and } need to be escaped
/\{\{MDN_Macro\}\}/u;
// The ] needs to be escaped
/\[sic\]/u;