Page 1 sur 1

Tester le format d'une date

Posté : 23 août 2006, 17:38
par lucluc
J'aimerai tester la valeur d'un champ date.

Pour etre valide elle doit etre de la forme jj/mm/aaaa ou j m et a son des nombres.

Je ne comprend pas grand chose aux expressions régulières et je suis arrivé à quelque chose comme ça:
if (eregi([0-9]/[0-9]/[0-9], $_POST['date']))
Merci pour votre aide

Posté : 23 août 2006, 18:06
par Cyrano
tu y es presque : il manque les nombres de caractères et le fait que le masque soit une chaine de caractère implique de la mettre entre guillemets.
if (eregi("^[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}$", $_POST['date']))
le "^" indique que la chaine doit commencer par ce qui suit et le "$" indique la fin de la chaîne à tester.
LE bloc [0-9] indique une classe qui va de 0 jusqu'à 9. Si tu avais mis par exemple [5-8] alors la recherche aurait été limité dans la tranche de 5 à 8. Ce bloc est suivi par le nombre d'occurences devant être trouvées : {x,y} où x est le nombre minimum, et y le nombre maximum :
{1,2} : 1 ou 2 occurences;
{2} : exactement 2 occurences;
éventuellement, tu pourrais utiliser d'autres symboles au lieu de {x,y} :
[0,9]* : de 0 à n occurence (pas de maximum)
[0,9]? : 0 ou 1 occurence;
[0,9]+ : 1 occurence minimum ou davantage (pas de maxi)

Jette un coup d'oeil sur le site PHPFrance, il y a un tuto sur les expressions régulières.

Posté : 23 août 2006, 20:01
par lucluc
Merci bien pour se cours... j'ai tout compris et meme pu corriger une erreure dans un autre script