bonjour,
je cherche une expression régulière pour vérifier le format de date dd/mm/yy.
Merci d'avance pour votre aide.
bonjour,
je cherche une expression régulière pour vérifier le format de date dd/mm/yy.
Merci d'avance pour votre aide.
Essaye avec Regexp::Common::time
Plus j'apprends, et plus je mesure mon ignorance (philou67430)
Toute technologie suffisamment avancée est indiscernable d'un script Perl (Llama book)
Partagez vos problèmes pour que l'on partage ensemble nos solutions : je ne réponds pas aux questions techniques par message privé
Si c'est utile, say
il y a un \/ en trop à la fin de la regexp
autrement pour forcer la vérification d'un format de date dd/mm/yy on peut faire une première vérification que les chiffres correspondent à une date plausible :
cela évite les dates 99/99/99
Code : Sélectionner tout - Visualiser dans une fenêtre à part /[0-3]\d\/[0-1]\d\/\d\d/
mais pour faire une réelle vérification que l'on écrit pas 33/19 en dd/mm, ou tester si un 29/02 est possible par rapport à l'année indiquée (bissextile ou pas), il faudrait, je pense, capturer le contenu et le tester, par exemple avec Time::Local qui est un core module.
Je ne pense pas que Regexp::Common::time puisse faire ce type de vérification (et ce n'est pas un core module).
Cela donnerait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #!/usr/bin/perl use strict; use warnings; use Time::Local; my $date = "29/02/96"; if ($date =~ /([0-3]\d)\/([0-1]\d)\/(\d\d)/) { eval { timelocal( 0, 0, 0, $1, $2-1, $3 ) }; if ($@) { print("Time is bad: $@"); } else { print "Time is good\n"; } } else { print("wrong time format\n"); }
Eks
Vu la question de départ, je partirais sans doute sur une simple regex comme celle proposée par Cyril ou, mieux, la version un peu plus discriminante de -Eks-. Souvent j'ai juste besoin de vérifier que j'ai bien reçu quelque chose ressemblant à une date (et pas une adresse IP, une URL, un IMSI ou un numéro de téléphone), si ça a bien l'air d'une date, je peux assumer qu'elle est certainement une vraie date.
- La programmation fonctionnelle en Perl : 1. Les opérateurs de liste; 2. Les fonctions d'ordre supérieur; 3. Étendre le langage.
- Comment utiliser des décorateurs en Perl: Un tutoriel pour changer le comportement d'une fonction sans en modifier le code source
- De Perl 5 à Perl 6 : 1. Les bases; 2. Les nouveautés; 3. Approfondissements; 4. Annexe 1: Ce qui change entre Perl 5 et Perl 6; Annexe 2: Les nouveautés de Perl 6.
- Les regex et grammaires de Perl 6
- Objets, classes et rôles en Perl 6 - Tutoriel de programmation orientée objet
- Tour d'horizon du nouveau langage Perl 6
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager