Tester le format d'une date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tester le format d'une date

par lucluc » 23 août 2006, 20:01

Merci bien pour se cours... j'ai tout compris et meme pu corriger une erreure dans un autre script

par Cyrano » 23 août 2006, 18:06

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.

Tester le format d'une date

par lucluc » 23 août 2006, 17:38

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