Construire une regex

Parent Previous Next



Construire une regex



Le gros de la théorie sur les regex est maintenant vu, et il ne reste plus qu'un peu de pratique. Nous allons tout de même voir comment écrire une regex pas à pas, de façon à ne pas se tromper.


Nous allons partir d'un exemple simple : vérifier si une chaîne de caractères correspond à une adresse e-mail. Pour rappel, une adresse e-mail est de cette forme : javascript@siteduzero.com.


Une adresse e-mail contient trois parties distinctes :


Pour construire une regex, il suffit de procéder par étapes : faisons comme si nous lisions la chaîne de caractères et écrivons la regex au fur et à mesure. On écrit tout d'abord la partie locale, qui n'est composée que de lettres, de chiffres et éventuellement d'un tiret, un trait de soulignement et un point. Tous ces caractères peuvent être répétés plus d'une fois (il faut donc utiliser le quantificateur +) :

/^[a-z0-9._-]+$/


On ajoute l'arobase. Ce n'est pas un métacaractère, donc pas besoin de l'échapper :

/^[a-z0-9._-]+@$/


Après vient le label du nom de domaine, lui aussi composé de lettres, de chiffres, de tirets et de traits de soulignement. Ne pas oublier le point, car il peut s'agir d'un sous-domaine (par exemple @tutoriels.siteduzero.com) :

/^[a-z0-9._-]+@[a-z0-9._-]+$/


Puis vient le point de l'extension du domaine : attention à ne pas oublier de l'échapper, car il s'agit d'un métacaractère :

/^[a-z0-9._-]+@[a-z0-9._-]+\.$/


Et pour finir, l'extension ! Une extension de nom de domaine ne contient que des lettres, au minimum 2, au maximum 6. Ce qui nous fait :

/^[a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,6}$/


Testons donc :

var email = prompt("Entrez votre adresse e-mail :", "javascript@siteduzero.com");

 

if (/^[a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,6}$/.test(email)) {

    alert("Adresse e-mail valide !");

} else {

    alert("Adresse e-mail invalide !");

}


L'adresse e-mail est détectée comme étant valide !


Créé avec HelpNDoc Personal Edition: Générateur complet de livres électroniques Kindle

Site à deux balles