Bonjour,
Je teste une regex de date. Mon but est de mettre cette regex dans l'attribut pattern d'un champ input, les champs de type date étant trop différents d'un navigateur à l'autre.
Voici mon code:Le problème est que le résultat est toujours 1 y compris pour les format 1/1/1 ou 01/01/1
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 define('INP_PATTERN_DATE', "#^[0-3]?\d/(0?[1-9])|(1[0-2])/(19|20)?\d{2}$#"); // enlever les # après tests pour attribut pattern de input var_dump(preg_match(INP_PATTERN_DATE, "1/1/1")); var_dump(preg_match(INP_PATTERN_DATE, "1/1/01")); var_dump(preg_match(INP_PATTERN_DATE, "1/1/2001")); var_dump(preg_match(INP_PATTERN_DATE, "01/01/1")); var_dump(preg_match(INP_PATTERN_DATE, "01/01/01")); var_dump(preg_match(INP_PATTERN_DATE, "12/12/12")); var_dump(preg_match(INP_PATTERN_DATE, "12/12/2012"));
Le résultat vaut aussi 1 pour 31/13/1
Partager