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:
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 problème est que le résultat est toujours 1 y compris pour les format 1/1/1 ou 01/01/1
Le résultat vaut aussi 1 pour 31/13/1