Voilà, j'ai mis le nez dans un truc qui me plaît assez fortement pour protéger ma base de données.
Dans un formulaire, je veux réaliser un test qui ne permette ensuite que de rentrer des valeurs de ces formes :
x x.x x.xx xx.x xx.xx où les x sont des [0,9]
Maîtrisant mal les expressions régulières, j'ai tenté ça :
Et ensuite je fais un test sur modèle pour afficher si le nombre est correct ou non.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $modele="[0-9]{1,2}[.]{0,1}[0-9]{1,2}"; $correct=ereg($modele,$rate);
Mais ça ne marche pas...
42a par exemple est reconnu comme correct, 42..5 également.
Je suppose que mon expression régulière est mal écrite, mais je ne vois pas où ça cloche.
[EDIT] Bon, bin avec ça : $modele="[0-9]{1,2}(\.[0-9]{1,2})";
ça a l'air de marcher. On dirait que le point sans antislash n'est pas compris comme un point, mais comme n'importe quel caractère.
Corrigez moi si je me trompe, $modele veut dire :
1 ou 2 chiffres suivis éventuellement de "." suivi de 1 ou 2 décimales.
J'ai bien compris ?
Partager