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![]()
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
Partager