Regex date jj/mm/yyyy-H:M:S

Résolu/Fermé
to-me Messages postés 72 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 26 mars 2010 - 3 sept. 2009 à 10:36
to-me Messages postés 72 Date d'inscription mercredi 20 août 2008 Statut Membre Dernière intervention 26 mars 2010 - 11 sept. 2009 à 11:07
Bonjour à tous,


J'ai une expression régulière qui ne fonctionne pas:
ereg("((0{0,1}[1-9]|1[012])/(0{0,1}[1-9]|[12][0-9]|3[01])/(19|20)[0-9][0-9])[\-](((0[0-9]|[0-9]|1[0-9]|2[0-3])(\:|\s?[hH]\s?|\.))((0[0-9]|[0-9]|[1-5][0-9])(\:|\s?[mM]\s?|\.)?)?((0[0-9]|[0-9]|[1-5][0-9])(\s?[sS]\s?)?)?)"

La première partie je l'ai testé elle fonctionne(valide datejj/mm/yyyy), je l'ai testé ainsi:
^(0{0,1}[1-9]|1[012])/(0{0,1}[1-9]|[12][0-9]|3[01])/(19|20)[0-9][0-9]$

mais quand j'ajoute la deuxième partie pour accpeter datejj/mm/yyyy-HH:mm:ss
plus aucune date n'est acceptée
[\-](((0[0-9]|[0-9]|1[0-9]|2[0-3])(\:|\s?[hH]\s?|\.))((0[0-9]|[0-9]|[1-5][0-9])(\:|\s?[mM]\s?|\.)?)?((0[0-9]|[0-9]|[1-5][0-9])(\s?[sS]\s?)?)?

Vous avez une idée svp?


Merci

To-me

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
11 sept. 2009 à 09:36
Salut,

Je ne vois pas pourquoi tu utilises [hH], [mM], [sS]

Avec ta regex en fait tu parses quel format? Donne un exemple de ce que ta regex doit trouver.
D'après ce que je vois tu ne parses en aucun cas jj/mm/aaaa mais mm/jj/aaaa

Pour simplifier la regex tu peux mettre au lieu de [0-9] la classe \d

2