SyntaxError: ungültiges reguläres Ausdrucks-Flag "x"
Die JavaScript-Ausnahme "ungültiges reguläres Ausdrucks-Flag" tritt auf, wenn die Flags in einem regulären Ausdruck ein Flag enthalten, das nicht eines der folgenden ist:d
,g
,i
,m
,s
,u
,v
odery
. Es kann auch ausgelöst werden, wenn der Ausdruck mehr als eine Instanz eines gültigen Flags enthält oder wenn dieu
- undv
-Flags zusammen verwendet werden.
Nachricht
SyntaxError: Invalid flags supplied to RegExp constructor 'x' (V8-based)SyntaxError: Invalid regular expression flags (V8-based)SyntaxError: invalid regular expression flag x (Firefox)SyntaxError: Invalid flags supplied to RegExp constructor. (Safari)SyntaxError: Invalid regular expression: invalid flags (Safari)
Fehlertyp
Was ist schiefgelaufen?
Der reguläre Ausdruck enthält ungültige Flags, oder gültige Flags wurden mehr als einmal im Ausdruck verwendet.
Die gültigen (erlaubten) Flags sindd
,g
,i
,m
,s
,u
,v
undy
. Sie werden im Detail imReguläre Ausdrücke > Erweiterte Suche mit Flags erklärt.
Dieu
- undv
-Flags schließen sich gegenseitig aus, daher können sie nicht zusammen verwendet werden. Sie können die Referenzen lesen, um die Unterschiede in ihrem Verhalten zu verstehen.
Beispiele
In einem regulären Ausdrucks-Literal, das aus einem Muster besteht, das zwischen Schrägstrichen eingeschlossen ist, werden die Flags nach dem zweiten Schrägstrich definiert. Reguläre Ausdrucks-Flags können separat oder zusammen in beliebiger Reihenfolge verwendet werden. Diese Syntax zeigt, wie die Flags mit dem regulären Ausdrucks-Literal deklariert werden:
const re = /pattern/flags;
Sie können auch in der Konstruktorfunktion desRegExp
-Objekts (zweiter Parameter) definiert werden:
const re = new RegExp("pattern", "flags");
Hier ist ein Beispiel, das nur korrekte Flags verwendet.
/foo/g;/foo/gims;/foo/uy;
Unten ist ein Beispiel, das die Verwendung einiger ungültiger Flagsb
,a
undr
zeigt:
/foo/bar;// SyntaxError: invalid regular expression flag "b"
Der untenstehende Code ist falsch, daW
,e
undb
keine gültigen Flags sind.
const obj = { url: /docs/Web,};// SyntaxError: invalid regular expression flag "W"
Ein Ausdruck, der zwei Schrägstriche enthält, wird als reguläres Ausdrucks-Literal interpretiert. Wahrscheinlich war beabsichtigt, ein String-Literal zu erstellen, das mit einfachen oder doppelten Anführungszeichen dargestellt wird, wie unten gezeigt:
const obj = { url: "/docs/Web",};
Siehe auch
MDN-Feedback-Box
Diese Seite wurde automatisch aus dem Englischen übersetzt.