Téléchargement
illégal
Posez votre question Signaler

Regex date jj/mm/yyyy-H:M:S [Résolu]

to-me 73Messages postés 20 août 2008Date d'inscription 26 mars 2010Dernière intervention - Dernière réponse le 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
Lire la suite 

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

5 réponses
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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

Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
Merci pour cette réponse rapide!

Je vais essayer tout ça
Ajouter un commentaire
Réponse
+0
moins plus
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

@+
Ajouter un commentaire
Ce document intitulé « regex date jj/mm/yyyy-H:M:S » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?