|
Parce qu'il est le plus souvent inutile
de "réinventer la roue" (sauf en phase d'apprentissage,
bien sûr), nous avons compilé sur cette page un ensemble
d'expressions rationnelles
les plus susceptibles d'être utiles au quotidien. La plupart
des classiques sont là (e-mail, URL...), mais nous avons introduit
quelques-uns qui, s'ils ne sont pas si souvent utilisables, peuvent
toujours avoir leur place dans votre trousse à outils.
Les exemples sont tous au format JavaScript, étant donné
que ce langage est utilisable sur les machines de tous nos lecteurs
(sauf peut-être ceux qui utilisent Lynx). Voici un
exemple de test JavaScript complet, pour un motif reconnaissant
le mot "jdnetdev". Vous pouvez facilement l'adapter à
vos propres besoins.
Nous précisons qu'il est plus que recommander de faire ce genre
de test coté serveur plutôt que coté client...
Dans JavaScript, les expressions rationnelles commencent et terminent
avec le caractère /. Par exemple,
dans notre fichier source, le motif utilisé est /^jdnetdev$/.
Pour simplifier la compréhension des motifs suivants, nous
avons sciemment omis ce caractère de début et de fin.
Notez bien que les regexp sont souvent
une affaire de goût : celles que nous vous donnons ici ne
sont pas toujours complètes - elle ne prennent pas forcément
en compte tous les cas possibles - mais devrait vous permettre
de vous sortir de la plupart des cas. (Merci Didier pour nous
l'avoir signalé, ainsi que certaines corrections).
1) Reconnaître une chaîne
de caractères non-numériques
Pour être sûr qu'un prénom ne comporte pas de
chiffres...
Motif : ^\D+$
Motif : ^[A-Za-z]+$
Motif : ^[^0-9]+$
Motif pour 6 lettres: ^[A-Za-z]{6}+$
2) Reconnaître une
chaîne de caractères numériques
Pour être sûr qu'un numéro de téléphone
ne comporte que des chiffres...
Motif : ^\d+$
Motif : ^[0-9]+$
Motif pour un code postal à 5 chiffres : ^[0-9]{5}$
3) Reconnaître une
adresse e-mail
Probablement le motif le plus utilisé...
Motif : ^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$
4) Reconnaître une
URL
Motif : ^[\w\-]+\.)+([\w\-]{2,3}$
5) Reconnaître une
balise HTML
Permet de vérifier qu'un utilisateur ne tente pas d'entre
un code "malicieux" via le formulaire.
Motif : ^<([A-Za-z][A-Za-z0-9]+)[^>]+>(.*?)\1>$
6) Reconnaître une
date (format 27/11/2003 ou 27-11-2003)
Il faut appliquer un script
final pour tester les cas d'années bisextiles...
Motif : ^\d{1,2}(\/|\-)\d{1,2}(\/|\-)\d{4}$
Motif : ^\d{1,2}(\/|\-)\d{1,2}\1\d{4}$,
où \1 fait référence
au groupe 1 précédemment créé, c'est-à-dire
(\/|\-) - cela nous permet d'être
sûr que les deux séparateurs sont les mêmes.
Motif : ^(0?[1-9]|[12]\d|3[0-1])([-/])(0?[1-9]|1[0-2])\2((19|20)\d\d)
$
7) Reconnaître un numéro de sécurité
sociale
En
voici la structure. Attention, pour véritablement
valider le numéro, il faut vérifier que les deux derniers
chiffres (la clé de contrôle) corresponde bien au modulo
97 du reste du numéro, ou à 00. Les regexp ne pouvant
se charger d'une telle opération, JavaScript doit entrer
en jeu.
Motif : ^[12][0-9]{2}[0-9]{2}[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{2}$
Motif : ^([12]\d\d(0[1-9]|1[0-2])(0[1-9]|[13456789]\d|2[023456789AB])\d\d\d\d\d\d)(\d\d)$
8) Reconnaître un
numéro Visa (très incomplet, bien sûr...)
La
structure. Ici encore, une vérification doit être
faite via un modulo de 10.
Motif : ^4[0-9]{[12|15]}$
Motif : ^4\d{12}(\d\d\d)?$
Nous vous en proposerons d'autres dans
un prochain "pratique"...
|