|
Déclarer un objet RegExp
Il existe 2 manières pour déclarer un objet RegExp. La plus lisible est d'utiliser le constructeur RegExp :
var reg=new RegExp(pattern, option);
Ici, reg est devenu un objet de type RegExp.
pattern est le motif associé, ce qui permet de faire le traitement. Son format est défini dans le paragraphe suivant.
option est une chaîne de caractère qui peut prendre les valeurs :
"", vide, aucune option,
"g", recherche globale sur toute la chaîne,
"i", ne pas faire la distinction majuscule/minuscule,
"gi", association de g et i.
Une autre notation, plus compacte, mais moins lisible est utilisée :
var exp=/pattern/option;
Les 2 notations sont exactement équivalentes.
La syntaxe du motif pattern
C'est bien l'écriture du motif qui va faire toute la puissance de votre expression régulière. Voici les principales syntaxes possibles :
| Motif | Signification |
| ^ | Début de ligne ou de chaîne |
| $ | Fin de ligne ou de chaîne |
| . | N'importe quel caractère |
| x|y | Caractère x ou y |
| [abc] | Groupe de caractères : n'importe lequel de ceux entre crochets |
| [a-z] | Groupe de caractères : n'importe lequel de a à z |
| [^0-9] | Groupe de caractères : tous sauf ceux entre crochets |
| (x) | Expression parenthésée (mémorisée) |
| * | Caractère précédent de 0 à X fois |
| + | Caractère précédent de 1 à X fois |
| ? | Caractère précédent de 0 à 1 fois |
| {n} | Caractère précédent exactement n fois |
| {n,} | Caractère précédent au moins n fois |
| {n,m} | Caractère précédent entre n et m fois |
| \ | N'est pas un caractère, sert de caractère d'échappement |
| \\ | Caractère \ |
| \d | Chiffres (équivalent à [0-9]) |
| \D | Sauf chiffres (équivalent à [^0-9]) |
| \b | Frontière de mot (espace, alinéa, ...) |
| \s | Caractère d'espacement (espace, tabulation, saut de page, ...) équivalent à [ \f\n\r\t\v] |
| \S | Un seul caractère sauf un espacement |
| \w | N'importe quel caractère alphanumérique, y compris undescore (_) équivalent à [A-Za-z0-9_] |
| \W | Tout sauf un caractère alphanumérique équivalent à [^A-Za-z0-9_] |
|
Exemples de motif
Si on reprend l'exemple du contôle de login, le pattern valait : ^[a-zA-Z0-9]{3,8}$
La signification est :
^ : pour montrer le début de la chaine,
[a-zA-Z0-9] : pour les caractères alphanumérique de a à z, de A à Z et de 0 à 9,
{3,8} : pour indiquer qu'il faut une longueure de 3 à 8 caractères alphanumériques,
$ : pour interdire tout caractère après.
C'est pas dur finalement :)
Pour tester qu'une saisie est un mail valide, voici la chaîne pattern à utiliser : ^[a-zA-Z0-9\-_]+[a-zA-Z0-9\.\-_]*@[a-zA-Z0-9\-_]+\.[a-zA-Z\.\-_]{1,}[a-zA-Z\-_]+
La signification de cette chaîne est logique également :
^ : début du mail
[a-zA-Z0-9\-_]+ : Au moins un caractère alphanumérique en début de mail
[a-zA-Z0-9\.\-_]* : Tous les caractères alphanumériques plus ., - et _ au moins 1 fois
@ : une fois arobase
[a-zA-Z0-9\-_]+ : Tous les caractères alphanumériques plus ., - et _ au moins 1 fois
\. : 1 fois le caractère .
[a-zA-Z0-9\.\-_]{1,} : Tous les caractères alphanumériques plus ., - et _ au moins 2 fois
[a-zA-Z0-9\-_]+ : Au moins un caractère alphanumérique en fin de mail
Nous allons voir que les expressions régulières ne servent pas seulement à vérifier une saisie.
On peut également faire des traitements sur des chaînes assez impressionnants !
|