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);

Essayez-le vous-même »

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/);

Essayez-le vous-même »

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");
Essayez-le vous-même »

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/);

Essayez-le vous-même »


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);

Essayez-le vous-même »


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);

Essayez-le vous-même »


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);

Essayez-le vous-même »


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);

Essayez-le vous-même »


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);
Essayez-le vous-même »

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);

Essayez-le vous-même »



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

Essayez-le vous-même »

const pattern = /^formation-ti.org/;
let text = "Bonjour formation-ti.org";

let result = pattern.test(text); // false

Essayez-le vous-même »


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
Essayez-le vous-même »
const pattern = /formation-ti.org$/;
let text = "formation-ti.org tutoriel";

let result = pattern.test(text); // false
Essayez-le vous-même »

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);

Essayez-le vous-même »