--- title: 'SyntaxError: invalid regular expression flag "x"' slug: Web/JavaScript/Reference/Erreurs/Bad_regexp_flag tags: - Erreurs - JavaScript - SyntaxError translation_of: Web/JavaScript/Reference/Errors/Bad_regexp_flag ---
SyntaxError: Syntax error in regular expression (Edge) SyntaxError: invalid regular expression flag "x" (Firefox) SyntaxError: Invalid regular expression flags (Chrome)
{{jsxref("SyntaxError")}}
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 {{jsxref("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');
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. {{jsxref("RegExp.sticky", "sticky")}}). |
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' };
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;
n
, s
, x
, A
)