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

Résolu
to-me Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   -  
to-me Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
to-me Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   8
 
Salut!

J'ai trouvé l'expression régulière. Si ça peut aider la voici:

^(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?)?)?$

Voilà!

Merci pour votre aide.

Bye
1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,


Il s'agit de format date jj/mm/yyyy-HH:mm:ss

Donc les 3 classes de caractères nont rien à faire dans la regex.

[hH]
[mM]
[sS]


Puisque dans ce cas c'est ce genre de dante qui sera reconnu (enfin, je n'ai pas vérifié toute la regex)
03/06/2008-10H:23M:25S
0
to-me Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   8
 
Merci pour cette réponse rapide!

Je vais essayer tout ça
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
to-me Messages postés 72 Date d'inscription   Statut Membre Dernière intervention   8
 
Oups c'est vrai. Dsl!

Ma regex prend mm/jj/aaaa-H:M:S , c'est moi qui avec un split et un mktime() récupère chaque partie de la date pour générer un timestamp conforme à ce que je veux.

Elle prend en entrée par ex 12/12/2009-12:12:12

dsl

@+
0