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

js
/{{MDN_Macro}}/u;
/\[sic]/u;

Gültige Fälle

js
// All { and } need to be escaped
/\{\{MDN_Macro\}\}/u;
// The ] needs to be escaped
/\[sic\]/u;

Siehe auch