SyntaxError: Raw-Klammern sind im regulären Ausdruck mit Unicode-Flag nicht erlaubt
Die JavaScript-Ausnahme "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.
Nachricht
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 schiefgelaufen ist
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 überprüfen, ob Sie eine ungültige Syntax haben, oder Sie sollten die Zeichen escapen, um sie wörtlich zu erfassen.
Wenn {
in einem Kontext erscheint, der einen Quantor akzeptiert, wird es als der Beginn eines Quantors behandelt. Wenn das Folgende kein gültiger Quantor ist, wird ein anderer 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;