Drapeaux RegExp JavaScript
Drapeaux Modificateurs RegExp
Drapeaux sont des paramètres qui peuvent modifier la façon dont un motif regex est utilisé, comme le rendre insensible à la casse ou global.
/pattern/ flags Drapeaux Regex JavaScript
Révisé en juillet 2025
| Drapeau | Description |
|---|---|
| /d | Effectue des correspondances de sous-chaînes (nouveau en 2022) |
| /g | Effectue une correspondance globale (trouver tout) |
| /i | Effectue une correspondance insensible à la casse |
| /m | Effectue une correspondance multilignes |
| /s | Permet à . (point) de correspondre aux terminators de ligne (nouveau en 2018) |
| /u | Active le support Unicode (nouveau en 2015) |
| /v | Une mise à niveau du drapeau /u pour un meilleur support Unicode (nouveau en 2025) |
| /y | Effectue une recherche "collante" (nouveau en 2015) |
Syntaxe des Drapeaux : /pattern/flags
| / | Délimiteur d'ouverture pour l'expression régulière |
| pattern | Expression régulière (un critère de recherche) |
| / | Délimiteur de fermeture pour l'expression régulière |
| flags | Un ou plusieurs drapeaux modificateurs simples |
Drapeau RegExp /g (Global)
Le /g drapeau correspond à toutes les occurrences du motif, plutôt qu'à la première seule.
Exemple
Une recherche globale pour "is" dans une chaîne :
let text = "Is this all there is?";
const pattern = /is/g;
let result = text.match(pattern);
Drapeau RegExp /i (Insensible)
Le /i drapeau rend la correspondance insensible à la casse : /abc/i correspond à "abc", "AbC", "ABC".
Exemple
Une recherche insensible à la casse pour "formation-ti.org" dans une chaîne :
let text = "Visit formation-ti.org";
const pattern = /is/g;
let result = text.match(pattern);
Drapeau RegExp /d
Le /d drapeau spécifie le début et la fin d'une correspondance.
Exemple
Correspond à chaque sous-texte qui commence ou se termine par aa ou bb :
let text = "aaaabb";
const pattern = /(aa)(bb)/d;
let result = text.match(pattern); Drapeau RegExp /s (Ligne unique/DotAll)
Le /s drapeau permet au métacaractère . (point) de correspondre aux caractères de nouvelle ligne (\n) en plus de tout autre caractère.
Exemple
Sans le drapeau /s, \n ne correspond pas à . (caractères génériques) :
let text = "Line\nLine.";
const pattern = /Line./gs;
let result = text.match(pattern);
Drapeau RegExp /y (Collant) :
Le /y drapeau effectue une recherche "collante" à partir de la propriété lastIndex de l'objet RegExp.
Le /y drapeau permet à une correspondance de commencer à la position exacte où la dernière correspondance s'est terminée.
Exemples
let text = "abc def ghi";
const pattern = /\w+/y;
// Commencer la correspondance à partir de la position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
Le drapeau /y doit être défini pour permettre la correspondance à partir d'une position.
Cela ne fonctionnera pas :
let text = "abc def ghi";
const pattern = /\w+/;
// Commencer la correspondance à partir de la position 4
pattern.lastIndex = 4;
let result = text.match(pattern);
Remarque
L'exemple ci-dessus utilise un regex métacaractère /\w+/.
La signification de /\w+/ est "correspondre à tout mot".
Vous en apprendrez plus sur les métacaractères dans les chapitres suivants.
Drapeau RegExp /u (Unicode)
Le /u drapeau active le support Unicode complet dans une expression régulière.
Par défaut, RegExp JavaScript traite les caractères Unicode de 4 octets (comme les emojis ou les symboles moins courants) comme deux unités de code "surrogates" de 2 octets séparées.
Le /u drapeau traite le motif comme une séquence de points de code Unicode, ce qui est important pour le traitement correct des caractères en dehors du Plan Multilingue de Base (BMP).
Exemple
let text = "䷀";
const pattern = /\u{04DC0}/u;
// Renvoie true :
let result = pattern.test(text); Sans le drapeau /u, les expressions régulières ne sont pas "conscientes de l'Unicode".
Exemple
let text = "䷀";
const pattern = /\u{04DC0}/;
// Renvoie false :
let result = pattern.test(text); Remarque
JavaScript 2025 a introduit le /v drapeau comme une "mise à niveau" du /u drapeau.
Le Drapeau /v active plus de fonctionnalités liées à l'Unicode.
Drapeau RegExp /v (Ensembles Unicode)
Le /v drapeau est une mise à niveau du drapeau /u pour un meilleur support Unicode.
Il active plus de fonctionnalités liées à l'Unicode.
Les nouvelles fonctionnalités sont :
- La séquence d'échappement \p correspond à des chaînes, plutôt qu'à des caractères.
- La classe de caractères est mise à niveau pour permettre les syntaxes d'intersection, d'union et de soustraction, ainsi que la correspondance de plusieurs caractères Unicode.
Exemple
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
// Renvoie true :
let result = pattern.test(text);
Sans le drapeau /v, les expressions régulières ne sont pas "conscientes de l'Unicode".
Exemple
let text = "Hello 😄";
const pattern = /\p{Emoji}/;
// Renvoie false :
let result = pattern.test(text);
Modificateurs de Groupe RegExp (?flag)
La syntaxe (?flag) est un modificateur de groupe (modificateur de drapeau en ligne).
Elle permet de modifier les drapeaux dans une partie d'un motif, plutôt que sur l'ensemble du motif.
(?flags:pattern) active les drapeaux uniquement pour le motif dans le groupe.
Exemple
Le drapeau i est uniquement activé pour la partie formation-ti.org du motif.
let text = "formation-ti.org tutorials.";
const pattern = /(?i:WShools) tutorials/;
// Renvoie true :
let result = pattern.test(text); Le drapeau i est uniquement activé pour la partie formation-ti.org du motif.
let text = "formation-ti.org Tutorials.";
const pattern = /(?i:W3Sshools) tutorials/;
// Renvoie false :
let result = pattern.test(text); Propriétés des Drapeaux Regex JavaScript
Révisé en juillet 2025
| Propriété | Description |
|---|---|
| global | Renvoie true si le drapeau /g est défini |
| hasIndices | Renvoie true si le drapeau /d est défini |
| ignoreCase | Renvoie true si le drapeau /i est défini |
| multiline | Renvoie true si le drapeau /m est défini |
| dotAll | Renvoie true si le drapeau /s est défini |
| sticky | Renvoie true si le drapeau /y est défini |
| unicode | Renvoie true si le drapeau /u est défini |
| unicodeSets | Renvoie true si le drapeau /v est défini |
La Propriété dotAll
La dotAll propriété renvoie true si le drapeau /s est défini.
Exemple
const pattern = /formation-ti.org/s;
let result = pattern.dotAll; La Propriété global
La global propriété renvoie true si le drapeau /g est défini.
Exemple
const pattern = /formation-ti.org/g;
let result = pattern.global; La Propriété hasIndices
La hasIndices propriété renvoie true si le drapeau /d est défini.
Exemple
const pattern = /formation-ti.org/d;
let result = pattern.hasIndices; La Propriété ignoreCase
La ignoreCase propriété renvoie true si le drapeau /i est défini.
Exemple
const pattern = /formation-ti.org/i;
let result = pattern.ignoreCase; La Propriété multiline
La multiline propriété renvoie true si le drapeau /m est défini.
Exemple
const pattern = /formation-ti.org/m;
let result = pattern.multiline; La Propriété sticky
La sticky propriété renvoie true si le drapeau /y est défini.
Exemple
const pattern = /formation-ti.org/y;
let result = pattern.sticky; La Propriété unicode
La unicode propriété renvoie true si le drapeau /u est défini.
Exemple
let text = "䷀";
const pattern = /\u{04DC0}/u;
let result = pattern.unicode; La Propriété unicodeSets
La unicodeSets propriété renvoie true si le drapeau /v est défini.
Exemple
let text = "Hello 😄";
const pattern = /\p{Emoji}/v;
let result = pattern.unicodeSets; Méthodes d'Expression Régulière
La recherche et le remplacement d'expressions régulières Search et Replace peuvent être effectués avec différentes méthodes.
Voici les plus courantes :
Méthodes de Chaîne
| Méthode | Description |
|---|---|
| match( regex ) | Renvoie un tableau de résultats |
| matchAll( regex ) | Renvoie un itérateur de résultats |
| replace( regex ) | Renvoie une nouvelle chaîne |
| replaceAll( regex ) | Renvoie une nouvelle chaîne |
| search( regex ) | Renvoie l'index de la première correspondance |
| split( regex ) | Renvoie un tableau de résultats |
Méthodes RegExp
| Méthode | Description |
|---|---|
| regex .exec() | Renvoie un itérateur de résultats |
| regex .test() | Renvoie true ou false |
Voir aussi :
Classes de Caractères RegExp JavaScript
Métacaractères RegExp JavaScript