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éfinition : Délimiteurs
En JavaScript, les expressions régulières sont délimitées par les symboles :
/.../
Exemple :
/mot/
Recherche "mot"
Certains symboles permettent de définir des ensembles de caractères
Définition : .
Un caractère quelconque
/.mot/
Recherche "mot" précédé d'un caractère quelconque. exemple : "amot", "dmot", "+mot"...
Définition : \d
Un chiffre(0 à 9)
/mot\d/
Recherche "mot" suivit d'un chiffre. Exemple : "mot0", "mot1"...
Définition : \D
Pas un chiffre
/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
/mot\smot/
Recherche "mot mot"
Définition : \S
Pas une césure
/mot\Smot/
Recherche "mot@mot", "mot§mot"... mais pas "mot mot".
Définition : \w
Caractère alphanumérique
/mot\w/
Recherche "mot3", "mota"... mais pas "mot@", "mot$"...
Définition : \W
Caractère non alphanumérique
/mot\W/
Recherche "mot@", "mot$"... mais pas "mot3", "mota"...
Définition : [ ]
Parmi l'ensemble
/[ab]/
Recherche "a" ou "b"
/[A-Z]/
Une majuscule
/[0-9]/
Un chiffre
/[0-9-]/
Un chiffre ou le signe "-"
/[a-zA-Z0-9_]/
Caractère alphanumérique
/[^éèàùçêôâîÎ]/
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
/m?ot/
Le caractère "m" 0 ou 1 fois. Recherche "ot" ou "mot".
Définition : *
0 ou n fois
/m*ot/
Le caractère "m" 0 ou n fois. Recherche "ot", "mot", "mmot"....
Définition : +
1 ou n fois
/m+ot/
Le caractère "m" 1 ou n fois. Recherche "mot", "mot", "mmot"....
Définition : {n}
n fois
/m{3}ot/
Recherche "mmmot"....
Définition : {n,m}
entre n et m fois
/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
/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
/^mot/
Recherche un texte commençant par "mot".
Définition : $
Fin de chaîne
/mot$/
Recherche un texte finissant par "mot".
Définition : \b
Extrémité
/\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é
/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éfinition : g
Recherche toutes les possibilités
/mot/g
Recherche tous les "mot" d'une chaîne de caractères. Le résultat est stocké dans un tableau.
Définition : i
Recherche sans la casse
/mot/i
Recherche "mot", "Mot", "mOt", "MOt"...
Autres symboles
Définition : ( )
Forme un groupe
/(mo)+t/
Recherche "mot", "momot", "momomot"...
Définition : |
Alternative
/m(o|e)t/
Recherche "mot" ou "met"
Définition : \
Caractères spéciaux
/m\(o\|e\)t/
Recherche "m(o|e)t" et non pas "mot" ou "met"
Fonctions
Définition : L'objet RegExp
Il existe deux façons de créer un objet RegExp.
De façon littéral :
let expr = /motif/drapeau
Exemple :
let expr = /^a*$/g
Par la création d'un nouvel objet :
let expr = new
RegExp("motif","drapeau") ;
Exemple :
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éfinition : test
test est une méthode de l'objet RegExp, elle retourne un booléen qui indique si l'expression est dans une phrase.
let expr = new RegExp("est","");
let phrase = "ceci est un test";
let resultat = expr.test(phrase);
console.log(resultat);
Le mot est se trouve dans la phrase. La console affiche TRUE.
Définition : search
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é.
let expr = new RegExp("est","");
let phrase = "ceci est un test";
let resultat = phrase.search(expr);
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éfinition : replace
replace est une méthode de l'objet String, elle permet de remplacer une expression par une autre dans une phrase.
let expr = new RegExp("e");
let phrase = "ceci est un test";
let resultat= phrase.replace(expr,"i");
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éfinition : match
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.
let expr = new RegExp("e.","g");
let phrase = "ceci est un test";
let resultat = phrase.match(expr);
console.log(resultat);
La fonction recherche e suivie d'un caractère.
La console affiche ec,es,es.
let expr = new RegExp("e.","g");
let phrase = "ceci est un test";
let resultat = phrase.match(expr);
console.log(resultat[0]);
La console affiche ec première solution du tableau resultat.