SyntaxError: invalid regular expression flag "x"

Message

SyntaxError: Syntax error in regular expression (Edge)
SyntaxError: invalid regular expression flag "x" (Firefox)
SyntaxError: Invalid regular expression flags (Chrome)

Type d'erreur

Quel est le problème ?

Un marqueur (flag) invalide est utilisé dans une expression rationnelle. Un littéral d'expression rationnelle se compose d'un motif entouré de deux barres obliques, les marqueurs sont ajoutés après la seconde barre oblique. On peut également les indiquer dans le deuxième paramètre du constructeur RegExp. Les marqueurs d'une expression rationnelle peuvent être utilisés séparément ou combinés, dans n'importe quel ordre. Il existe uniquement cinq marqueurs autorisés en ECMAScript.

Pour ajouter un marqueur sur une expression rationnelle, on utilisera cette syntaxe :

var re = /motif/marqueurs;

ou encore :

var re = new RegExp('motif', 'marqueurs');
Marqueurs autorisés pour les expressions rationnelles
Marqueur Description
g Recherche globale.
i Recherche non-sensible à la casse.
m Recherche sur plusieurs lignes.
u Unicode : le motif est interprété comme une suite de codets Unicode.
y La recherche effectu√©e est ¬ę adh√©rente ¬Ľ et recherche une correspondance √† la position indiqu√©e dans la cha√ģne cible (cf. sticky).

Exemples

Seuls cinq marqueurs d'expression rationnelle sont valides :

/toto/truc;

// SyntaxError: invalid regular expression flag "t"

Peut-être souhaitiez-vous créer une expression rationnelle ? Une expression qui contient deux barres obliques est interprétée comme un littéral d'expression rationnelle :

let obj = {
  url: /docs/Web
};

// SyntaxError: invalid regular expression flag "W"

Peut-√™tre souhaitiez-vous cr√©er une cha√ģne de caract√®res ? Dans ce cas, il faut ajouter des quotes (simples ou doubles) afin de former un litt√©ral de cha√ģne de caract√®res :

let obj = {
  url: '/docs/Web'
};

Marqueurs valides

Voir le tableau ci-avant pour la liste des marqueurs autorisés pour manipuler les expressions rationnelles en JavaScript.

/toto/g;
/toto/gim;
/toto/uy;

Voir aussi