RegExp

Les expressions régulières sont un moyen de rechercher ou remplacer des chaînes de caractères dans d'autres chaînes de caractères. Elles sont réalisées à l'aide d'un langage particulier qui comporte différents symboles permettant de repérer un groupe, une répétition, ou l'absence de certains signes.

Exemples :

  • vérifier le contenu d'une zone de texte

  • valider une adresse e-mail

  • valider un champ date

Symboles

DéfinitionDélimiteurs

En JavaScript, les expressions régulières sont délimitées par les symboles :

1
/.../

Exemple :

1
/mot/

Recherche "mot"

Certains symboles permettent de définir des ensembles de caractères

Définition.

Un caractère quelconque

1
/.mot/

Recherche "mot" précédé d'un caractère quelconque. exemple : "amot", "dmot", "+mot"...

Définition\d

Un chiffre(0 à 9)

1
/mot\d/

Recherche "mot" suivit d'un chiffre. Exemple : "mot0", "mot1"...

Définition\D

Pas un chiffre

1
/mot\D/

Recherche "mot" suivit d'un caractère qui n'est pas un chiffre. Exemple : "mota", "mot="... mais pas "mot4"

Définition\s

Césure

1
2
/mot\smot/

Recherche "mot mot"

Définition\S

Pas une césure

1
/mot\Smot/

Recherche "mot@mot", "mot§mot"... mais pas "mot mot".

Définition\w

Caractère alphanumérique

1
/mot\w/

Recherche "mot3", "mota"... mais pas "mot@", "mot$"...

Définition\W

Caractère non alphanumérique

1
/mot\W/

Recherche "mot@", "mot$"... mais pas "mot3", "mota"...

Définition[ ]

Parmi l'ensemble

1
/[ab]/

Recherche "a" ou "b"

1
/[A-Z]/

Une majuscule

1
/[0-9]/

Un chiffre

1
/[0-9-]/

Un chiffre ou le signe "-"

1
/[a-zA-Z0-9_]/

Caractère alphanumérique

1
/[^éèàùçêôâîÎ]/

Pas des caractères avec accent ou cédille. "^" caractère d'exclusion.

Certains symboles permettent de définir des répétitions

Définition?

0 ou 1 fois

1
/m?ot/

Le caractère "m" 0 ou 1 fois. Recherche "ot" ou "mot".

Définition*

0 ou n fois

1
/m*ot/

Le caractère "m" 0 ou n fois. Recherche "ot", "mot", "mmot"....

Définition+

1 ou n fois

1
/m+ot/

Le caractère "m" 1 ou n fois. Recherche "mot", "mot", "mmot"....

Définition{n}

n fois

1
/m{3}ot/

Recherche "mmmot"....

Définition{n,m}

entre n et m fois

1
/m{2,4}ot/

Le caractère "m" entre 2 et 4 fois. Recherche "mmot", "mmmot" ou "mmmmot"

Définition{n,}

Au moins n fois

1
/m{2,}ot/

Le caractère "m" au moins 2 fois. Recherche "mmot", "mmmot", "mmmmot"...

Certains symboles permettent de définir des positions

Définition^

Début de chaîne

1
/^mot/

Recherche un texte commençant par "mot".

Définition$

Fin de chaîne

1
/mot$/

Recherche un texte finissant par "mot".

Définition\b

Extrémité

1
/\bmot\b/

Recherche "mot" séparé d'autres caractères. Exemple "un mot long" mais pas "la motte".

Définition\B

Pas une extrémité

1
/mot\B/

Recherche "mot" suivi d'un caractère. Exemple "la motte" mais pas "un mot long".

Certains symboles permettent de définir des drapeaux

Définitiong

Recherche toutes les possibilités

1
/mot/g

Recherche tous les "mot" d'une chaîne de caractères. Le résultat est stocké dans un tableau.

Définitioni

Recherche sans la casse

1
/mot/i

Recherche "mot", "Mot", "mOt", "MOt"...

Autres symboles

Définition( )

Forme un groupe

1
/(mo)+t/

Recherche "mot", "momot", "momomot"...

Définition|

Alternative

1
/m(o|e)t/

Recherche "mot" ou "met"

Définition\

Caractères spéciaux

1
/m\(o\|e\)t/

Recherche "m(o|e)t" et non pas "mot" ou "met"

Fonctions

DéfinitionL'objet RegExp

Il existe deux façons de créer un objet RegExp.

De façon littéral :

1
let expr = /motif/drapeau

Exemple :

1
let expr = /^a*$/g

Par la création d'un nouvel objet :

1
let expr = new  RegExp("motif","drapeau") ;

Exemple :

1
let expr = new RegExp("^a*$","g") ;

En JavaScript il existe différentes fonctions qui utilisent les expressions régulières :

  • test

  • search

  • replace

  • match

Définitiontest

test est une méthode de l'objet RegExp, elle retourne un booléen qui indique si l'expression est dans une phrase.

1
let expr = new RegExp("est","");
2
let phrase = "ceci est un test";
3
let resultat = expr.test(phrase);
4
console.log(resultat);

Le mot est se trouve dans la phrase. La console affiche TRUE.

Définitionsearch

search est une méthode de l'objet String, elle permet de retrouver l'emplacement d'une expression dans une phrase.

Si l'expression n'est pas dans la phrase, la méthode retourne -1, sinon elle retourne le rang du premier caractère trouvé.

1
let expr = new RegExp("est","");
2
let phrase = "ceci est un test";
3
let resultat = phrase.search(expr);
4
console.log(resultat);

Le mot est débutant au 6ième caractère de la phrase et le rang de la première lettre étant 0 le résultat retourné est 5.

Définitionreplace

replace est une méthode de l'objet String, elle permet de remplacer une expression par une autre dans une phrase.

1
let expr = new RegExp("e");
2
let phrase = "ceci est un test";
3
let resultat= phrase.replace(expr,"i");
4
console.log(resultat);

La fonction recherche le premier e et le remplace par un i.

La console affiche cici est un test.

Si vous voulez remplacer tous les e vous devez ajouter le drapeau g

Définitionmatch

match est une méthode de l'objet String, elle permet de retourner l'expression trouvée.

Si le drapeau g est utilisé, la fonction retourne un tableau des réponses.

Si aucun résultat n'est trouvé, la fonction retourne null.

1
let expr = new RegExp("e.","g");
2
let phrase = "ceci est un test";
3
let resultat = phrase.match(expr);
4
console.log(resultat);

La fonction recherche e suivie d'un caractère.

La console affiche ec,es,es.

1
let expr = new RegExp("e.","g");
2
let phrase = "ceci est un test";
3
let resultat = phrase.match(expr);
4
console.log(resultat[0]);

La console affiche ec première solution du tableau resultat.