RegExp JavaScript
Expressions Régulières
Une Expression Régulière est une séquence de caractères qui forme un motif de recherche .
Regex est un raccourci courant pour une expression régulière.
RegExp en JavaScript est un Objet utilisé pour gérer les expressions régulières.
Les RegExp peuvent être utilisées pour :
- Recherche de texte
- Remplacement de texte
- Validation de texte
Exemple
Effectuer une recherche insensible à la casse pour "formation-ti.org" dans une chaîne :
let text = "Visitez formation-ti.org";
let n = text.search(/formation-ti.org/i);
Exemple expliqué :
/formation-ti.org/i est une expression régulière.
formation-ti.org est un motif (à utiliser dans une recherche).
i est un modificateur (il rend la recherche insensible à la casse).
Syntaxe des Expressions Régulières
/ motif / modificateurs ; Utilisation des Méthodes de Chaîne
Les expressions régulières sont souvent utilisées avec les méthodes de chaîne :
| Méthode | Description |
|---|---|
| match( regex ) | Renvoie un tableau de résultats |
| replace( regex ) | Renvoie une nouvelle chaîne |
| search( regex ) | Renvoie l'index de la première correspondance |
Utilisation de String match()
Rechercher "formation-ti.org" dans une chaîne :
let text = "Visitez formation-ti.org";
let n = text.match(/formation-ti.org/);
Utilisation de String replace()
Remplacer Microsoft par formation-ti.org dans une chaîne :
let text = "Visitez Microsoft !";
let result = text.replace(/Microsoft/i, "formation-ti.org"); Utilisation de String search()
Rechercher "formation-ti.org" dans une chaîne :
let text = "Visitez formation-ti.org";
let n = text.search(/formation-ti.org/);
Alteration RegExp (OU)
Dans une expression régulière, une alteration est désignée par un caractère de barre verticale | .
Une alteration correspond à l'une des alternatives séparées par | .
Exemple
Une recherche globale pour les alternatives (rouge|vert|bleu) :
let text = "Noir, blanc, rouge, vert, bleu, jaune.";
let result = text.match(/rouge|vert|bleu/g);
Drapeaux Regex JavaScript
/motif/ drapeaux Les drapeaux d'expressions régulières sont des paramètres qui peuvent modifier la façon dont un motif est utilisé, comme le rendre insensible à la casse ou global.
Voici les plus courants :
| Drapeau | Description |
|---|---|
| /g | Effectue une correspondance globale (trouve tout) |
| /i | Effectue une correspondance insensible à la casse |
| /u | Active le support Unicode (nouveau 2015) |
Le Drapeau /g (Global)
Le /g drapeau correspond à toutes les occurrences du motif, plutôt qu'à la première seule.
Exemple
Une recherche globale pour "est" dans une chaîne :
let text = "Est-ce tout ce qu'il y a ?";
const pattern = /est/g;
let result = text.match(pattern);
Le Drapeau /i (Insensible)
Le /i drapeau rend une 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 = "Visitez formation-ti.org";
const pattern = /formation-ti.org/i;
let result = text.match(pattern);
En savoir plus :
Métacaractères RegExp
// Correspondre aux mots
const pattern = /\w/; Métacaractères sont des caractères ayant une signification spéciale.
Ils peuvent être utilisés pour correspondre à des chiffres, des mots, des espaces, et plus encore.
Voici les plus courants :
| Méta | Description |
|---|---|
| \d | Correspond aux chiffres |
| \w | Correspond aux mots |
| \s | Correspond aux espaces |
Métacaractère \d (chiffres) RegExp
Le métacaractère \d correspond aux chiffres.
Exemple
Une recherche globale pour les chiffres dans une chaîne :
let text = "Donnez 100%!";
const pattern = /\d/g;
let result = text.match(pattern);
Métacaractère \w (mot) RegExp
Le métacaractère \w correspond aux caractères de mot.
Un caractère de mot est un caractère a-z, A-Z, 0-9, y compris _ (underscore).
Exemple
Une recherche globale pour les caractères de mot :
let text = "Donnez 100%!";
const pattern = /\w/g;
let result = text.match(pattern); En savoir plus :
Quantificateurs RegExp JavaScript
// Correspondre à au moins un zéro
const pattern = /0+/; Quantificateurs définissent le nombre de caractères ou d'expressions à correspondre.
Voici les plus courants :
| Code | Description |
|---|---|
| x* | Correspond à zéro ou plusieurs occurrences de x |
| x? | Correspond à zéro ou une occurrence de x |
| x{n} | Correspond à n occurrences de x |
Le Quantificateur n?
x ? correspond à zéro ou une occurrence de x.
Exemple
Une recherche globale pour "1", suivie de zéro ou plusieurs caractères "0" :
let text = "1, 100 ou 1000 ?";
const pattern = /10?/g;
let result = text.match(pattern);
En savoir plus :
Assertions d'Expressions Régulières
// Correspondre au début de la chaîne
const pattern = /^formation-ti.org/;
// Correspondre à la fin de la chaîne
const pattern = /formation-ti.org$/; Assertions correspondent aux Limites et aux Lookarounds :
Limites de chaîne et Limites de mot.
Lookarounds : Lookaheads et Lookbehinds.
Voici les plus courants :
| 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 |
| (?=...) | Lookahead | Correspond à la chaîne suivante |
| (?<=...) | Lookbehind | Correspond à la chaîne précédente |
Métacaractère RegExp ^
Le métacaractère ^ correspond au début d'une chaîne.
Exemples
Tester 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.
Tester 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
En savoir plus :
Classes de Caractères RegExp JavaScript
// Correspondre aux Chiffres
const pattern = /[0-9]/; Classes de Caractères sont des caractères enfermés dans des crochets [] .
Une classe de caractères correspond à n'importe quel caractère d'un ensemble dans des crochets.
Voici les plus courants :
| Classe | Description |
|---|---|
| [a] | Correspond au caractère entre les crochets |
| [abc] | Correspond à tous les caractères entre les crochets |
| [a-z] | Correspond à tous les caractères dans la plage de a à z |
| [0-9] | Correspond à tous les caractères dans la plage de 0 à 9 |
Exemple [0-9]
Une recherche globale pour les caractères "0" à "9" dans une chaîne :
let text = "Plus de 1000 fois";
const pattern = /[0-9]/g;
let result = text.match(pattern);
En savoir plus :
Classes de Caractères RegExp JavaScript
Métacaractères RegExp JavaScript