Page 1 sur 1

Date et expression régulière

Posté : 21 févr. 2007, 19:12
par analfabete
Bonjour j'ai un formulaire ou l'utilisateur doit remplir dans un formulaire uen date qu'il lui convient sous la forme 25/09/2007, plus généralement jj/mm/aaaa.
Et je désire vérifier si la date est au bon format a l'aide de la fonction preg_match
Mais je galère avec mon "debrit" de regex qui ne marche pas, la voilà:
$expr="^[0-31]{1}  /{1}  [0-12]{1}  (/20){1}  ((0[7-9]){1} | [10-12]{1})$";
if( !preg_match($expr,$madate) 
{
echo 'Date erroner';
}

else { echo 'Tout va bien';}

Si quelqun peux m'éclairer sa sera avec plaisir ...
Merci d'avance !

Posté : 21 févr. 2007, 20:18
par mojorisin
Salut,
tiens voila une expression régulière :
if(preg_match('`((?:0[1-9]|[1-2][0-9]|3[0-1]))/((?:0?[1-9]|1[0-2]))/(\d{4})`',$madate)){
// date correctement formatée
}
Bien évidemment cela ne vérifie pas si la date est valide (par exemple le 31/02/9999 passera)
Pour vérifier la validité de la date il te faudra regarder du cote de la fonction checkdate()