Assertions d'expressions régulières
Assertions RegExp
Assertions correspondent à Limites et Lookarounds :
Limites de chaîne et Limites de mots.
Lookarounds : Lookaheads et Lookbehinds.
// Correspond au début de la chaîne
const pattern = /^formation-ti.org/;
// Correspond à la fin de la chaîne
const pattern = /formation-ti.org$/; Assertions Regex JavaScript
Révisé en juillet 2025
| Syntaxe | Nom | Description |
|---|---|---|
| ^ | Limite de chaîne | Correspond au début d'une chaîne |
| $ | Limite de chaîne | Correspond à la fin d'une chaîne |
| \b | Limite de mot | Correspond au début ou à la fin d'un mot |
| \B | Limite de mot | Correspond à l'intérieur d'un mot |
| (?=...) | Lookahead | Correspond à la chaîne suivante |
| (?!...) | Lookahead | Correspond à tout sauf la chaîne suivante |
| (?<=...) | Lookbehind | Correspond à la chaîne précédente |
| (?<!...) | Lookbehind | Correspond à tout sauf la chaîne précédente |
Métacaractère RegExp ^
Le métacaractère ^ correspond au début d'une chaîne.
Exemples
Testez si une chaîne commence par formation-ti.org :
const pattern = /^formation-ti.org/;
let text = "formation-ti.org Tutoriel";
let result = pattern.test(text); // true
const pattern = /^formation-ti.org/;
let text = "Bonjour formation-ti.org";
let result = pattern.test(text); // false
Métacaractère RegExp $
Le métacaractère $ correspond à la fin d'une chaîne.
Testez si une chaîne se termine par formation-ti.org :
const pattern = /formation-ti.org$/;
let text = "Bonjour formation-ti.org";
let result = pattern.test(text); // true
const pattern = /formation-ti.org$/;
let text = "formation-ti.org tutoriel";
let result = pattern.test(text); // false
Le métacaractère \b
Le métacaractère \b correspond au début ou à la fin d'un mot.
Exemples
Recherchez les caractères "LO" au début d'un mot :
let text = "BONJOUR, REGARDEZ VOUS!";
let result = text.search(/\bLO/);
Recherchez les caractères "LO" à la fin d'un mot :
let text = "BONJOUR, REGARDEZ VOUS!";
let result = text.search(/LO\b/);
Lookahead RegExp x(?=y)
x(?=y) correspond à "x" si "x" est suivi de "y".
Exemple
Correspond à "formation-ti.org" si "formation-ti.org" est suivi de " Tutoriels".
let text = "formation-ti.org Tutoriels";
let pattern = /formation-ti.org(?= Tutoriels)/;
let result = pattern.test(text);
Lookahead négatif x(?!y)
x(?!y) correspond à "x" si "x" n'est PAS suivi de "y".
Exemple
let text = "formation-ti.org Tutoriels";
let pattern = /formation-ti.org(?! Tutoriels)/;
let result = pattern.test(text);
Explication
formation-ti.org correspond au mot littéral.
(?! Tutoriels) affirme que ce qui suit n'est pas " Tutoriels".
Si text = "formation-ti.org Tutoriels", le test retourne false.
Si text = "formation-ti.org Site Web", le test retourne true.
Lookbehind RegExp (?<=y)x
(?<=y)x correspond à "x" si "x" est précédé de "y".
Exemple
Correspond à "W3Scools" si "formation-ti.org" est précédé de "Bonjour ".
let text = "Bonjour formation-ti.org";
let pattern = /(?<=Bonjour )formation-ti.org/;
let result = pattern.test(text);
Lookbehind négatif (?<!y)x
(?<!y)x correspond à "x" uniquement si "x" n'est PAS précédé de "y".
Exemple
let text = "Bonjour formation-ti.org";
let pattern = /(?<!Bonjour ) formation-ti.org/;
let result = pattern.test(text);
Groupes d'expressions régulières
| Char | Description |
|---|---|
| (x) | Correspond à x et le sauvegarde |
| (?<n>x) | Correspond à x et le nomme n |
| (?flag:x) | Active le(s) flag(s) pour x |
| (?flag-flag:x) | Désactive le(s) flag(s) pour x |
Groupes capturants RegExp (x)
Exemple
let text = "Haha, haha, haha.";
const pattern = /(haha)+/;
let result = text.match(pattern); Expliqué
- (haha) capture un groupe de caractères
- (haha)+ correspond à zéro ou plusieurs occurrences du groupe
- text.match() retourne un tableau de résultats
- match.groups() retourne un tableau de correspondances
Groupes capturants nommés (?<n>)
Exemple
const text = "Nom : John Doe";
// Utilisation de groupes capturants nommés
const regex = /(?<firstName>\w+) (?<lastName>\w+)/;
const match = text.match(regex);
let fName = match.groups.firstName;
let lName = match.groups.lastName;
Expliqué
- (?<firstName>\w+) capture un mot et le nomme firstName
- (?<lastName>\w+) fait de même pour lastName
- text.match() retourne un tableau avec une propriété groups
- match.groups() retourne un objet :
{firstName:"John", lastName:"Doe" }
Lors de l'utilisation de groupes capturants, la méthode String match() et la méthode RegExp exec() retournent un objet de correspondance avec une propriété groups. Cette propriété contient les noms et les valeurs des groupes.
Modificateurs de groupe RegExp (?flag)
La syntaxe (?flag) est un modificateur de groupe (modificateur de flag en ligne).
Elle permet de modifier les flags dans une partie d'un motif, plutôt que sur l'ensemble du motif.
(?flags:pattern) active les flags uniquement pour le motif dans le groupe.
Exemple
Le flag i est uniquement activé pour la partie formation-ti.org du motif.
let text = "formation-ti.org tutoriels.";
const pattern = /(?i:WShools) tutoriels/;
// Retourne true :
let result = pattern.test(text); Le flag i est uniquement activé pour la partie formation-ti.org du motif.
let text = "formation-ti.org Tutoriels.";
const pattern = /(?i:W3Sshools) tutoriels/;
// Retourne false :
let result = pattern.test(text); Voir aussi :
Classes de caractères RegExp JavaScript
Méta-caractères RegExp JavaScript
Méthodes d'expressions régulières
La recherche d'expressions régulières et le remplacement peuvent être effectuées avec différentes méthodes.
Voici les plus courantes :
Méthodes de chaîne
| Méthode | Description |
|---|---|
| match( regex ) | Retourne un tableau de résultats |
| matchAll( regex ) | Retourne un itérateur de résultats |
| replace( regex ) | Retourne une nouvelle chaîne |
| replaceAll( regex ) | Retourne une nouvelle chaîne |
| search( regex ) | Retourne l'index de la première correspondance |
| split( regex ) | Retourne un tableau de résultats |
Méthodes RegExp
| Méthode | Description |
|---|---|
| regex .exec() | Retourne un itérateur de résultats |
| regex .test() | Retourne true ou false |