Les expressions régulières servent
à contrôler des chaînes de
caractères. Elles nous seront très utiles pour
vérifier les champs des formulaires.
Fonctions utilisant les expressions
régulières
- search(expression_régulière)
- Retourne l'indice dans la chaîne correspondant
à l'expresion régulière. Cette fonction
retourne -1 si aucune partie de la
chaîne ne correspond à l'expression.
- match(expression_régulière)
- Retourne un tableau contenant
les chaînes trouvées par l'expression
régulière. Cette fonction retourne null
si elle ne trouve aucune sous-chaîne.
- expression=regexpr(expression_régulière)
- Permet d'utiliser des variables dans les fonctions
ci-dessus à la place d'expressions en dur : on pourra par
exemple utiliser la variable expression à la place de
l'expression régulière rentrée dans la
fonction regexpr().
Exemple :
if (chaine.search(/^[A-Z]+$/)==-1) {
alert('Il faut écrire en majuscules');
}
Dans cet exemple, si la chaîne de caractères
chaine n'est pas composée uniquement de
majuscules, une
fenêtre prévient l'utilisateur qu'il faut
écrire en majuscules.
Exemple :
var date="01/11/2004";
tableau=date.match(/[0-9]{2,4}/g);
Dans cet exemple tableau[0] contiendra "01", tableau[1]
contiendra "11" et tableau[2] contiendra "2004".
le caractère g indique qu'on fait une recherche globale. S'il n'est pas indiqué, la recherche s'arrètera à "01".
Définition d'une expression régulière
Une expression régulière est entourée soit par des guillemets, soit par le caractère "/".
Caractères utilisés :
- \
- Si le caractère suivant est un caractère spécial (un de cette liste), c'est le caractère d'échappement : il indique que le caractère doit être considéré comme non-spécial
- Si la caractère suivant est un caractère non spécial (exemple : "d"), il indique que ce caractère doit être considéré comme spécial.
- ^
- Début de chaîne.
- $
- Fin de chaîne
- *
- Le caractère précédent peut-être présent ou pas dans la chaîne controlée.
- +
- Le caractère précédent doit être présent au moins une fois.
- ?
- Le caractère précédent doit être non-répété (présent au maximum une fois)
- {n}
- Avec n un nombre entier
- Le caractère précédent doit-être présent n fois.
- {n,p}
- Avec n et p deux entiers, n<p
- Le caractère prédédent doit être présent au minimum n fois et au maximum p fois.
- [abcdef87]
- Le caractère doit correspondre à un des caractères présent entre crochet.
- [^dlqu321]
- Le caractère ne doit pas être un de ceux entre crochets.
- [A-G0-4]
- Le caractère doit être majuscule et compris entre A et G (inclus) ou un chiffre entre 0 et 4.
- a|b
- Le caractère doit être a OU EXCLUSIF b.
- .
- N'importe quel caractère, mais doit être présent.
- /expression/g
- Faire une recherche globale : rechercher l'expression autant de fois qu'elle parait (à la fin de la
- /expression/i
- Faire une recherche sans respecter la casse.
Exemples :
- /but/
- Les chaines suivantes seront conformes : "but", "butée", "débuter" : trouve "but" dans une chaîne de caractères
- /.but/
- Chaîne conforme : "début". Chaîne non conforme : "butée". La chaîne ne doit pas commencer par "but"
- /^but$/i
- Chaînes conformes : "but", "BUT", "But". Chaînes non conformes : "début", "butée". La chaîne ne doit comporter que "but" mais la recherche est insensible à la casse.
- /[A-Z]{5,8}/
- Chaînes conformes : "ATTILA", "PARIS". Chaînes non conformes :
"Attila", "MOI". La chaîne ne doit comporter que des majuscules et doit
faire entre 5 et 8 caractères.
- /^[0-9]{2}-[0-9]{2}-[0-9]{4}$/
- Chaînes conformes : "02-05-2004", "22-05-1984". Chaînes non conformes : "19/04/1953", "1-11-2005". Impose 2 fois 2 chiffres puis une fois 4 chiffres séparés par le caractère "-".