begin process at 2012 02 13 19:56:38
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Chaînes de caratères

 > [REGEXP]TESTER LA VALIDITÉ D'UNE DATE

[REGEXP]TESTER LA VALIDITÉ D'UNE DATE


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Chaînes de caratères Classé sous :tester, validité, date, regexp, expression Niveau :Débutant Date de création :11/01/2002 Date de mise à jour :12/01/2002 23:06:52 Vu :22 381

Auteur : vbtom

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Tester la validité d'une date grace aux expressions régulières

Source

  • %
  • '---- Déclare la variable ----
  • Dim MyRegExp
  • '---- Crée l'objet ----
  • Set MyRegExp=New RegExp
  • '---- Définit les propriétés ----
  • MyRegExp.Global=false 'Ca ne recherche qu'un fois une expression régulière, ca ne cherche pas à toutes les relever
  • '---- Définit l'expression régulière ----
  • MyRegExp.Pattern="([0-9]{2,2})(/)([0-9]{2,2})(/)([0-9]{2,2})"
  • %>
  • <HTML>
  • <HEAD>
  • <TITLE>Test des expressions régulières</TITLE>
  • </HEAD>
  • <BODY>
  • <% = MyRegExp.Test("22/09/86") %><BR>
  • </BODY>
  • </HTML>
%
'---- Déclare la variable ----
Dim MyRegExp
'---- Crée l'objet ----
Set MyRegExp=New RegExp
'---- Définit les propriétés ----
MyRegExp.Global=false 'Ca ne recherche qu'un fois une expression régulière, ca ne cherche pas à toutes les relever
'---- Définit l'expression régulière ----
MyRegExp.Pattern="([0-9]{2,2})(/)([0-9]{2,2})(/)([0-9]{2,2})"
%>

<HTML>
<HEAD>
<TITLE>Test des expressions régulières</TITLE>
</HEAD>
<BODY>
<% = MyRegExp.Test("22/09/86") %><BR>
</BODY>
</HTML> 

 Conclusion

Quelques explications sur lexpression régulière elle-même:
(: ouvre un nouveua groupement
[0-9]: Tous les chiffres
{2,2}: le caratères précendent doit être répété 2 fois
): ferme le groupement
(: ouvre un nouveau groupement
/: un caratère...
): Ferme le groupement
etc....


Avec ca si vous avez pas compris les groupements...ARGH... :)

Ca renvoie True si la date est bonne

Suite a un commentaire voici un nouvel expression reg:
([0-3][0-9]})(/)([0-9]{2,2})(/)([0-3]{2,2})


 Sources du même auteur

Source .NET (Dotnet) AFFICHER LE CONTENU ENTIER D'UNE TABLE
Source .NET (Dotnet) RÉCUPÉRER LE RÉSULTAT D'UNE REQUÈTE SQL
Source .NET (Dotnet) CONNECTION À UNE BASE DE DONNÉE ACCESS
TESTER LA VALIDITÉ D'UN NUMÉRO DE CARTE DE CRÉDIT
Source avec Zip LE VBS ?? - PART III: TRAVAILLER SUR DES DONNÉES STRING (TEX...

 Sources de la même categorie

FONCTION : REMPLACER LES CARRACTÈRES ACCENTUÉS PAR LEUR ÉQUI... par promeythey
CHERCHER ET REMPLACER UN MOT DANS UN FICHIER TEXTE par roro59650
CONVERSION CARACTÈRES UTF-8 VERS FRANÇAIS par EricDD
FONCTION UCFIRST EN ASP par DesignerCreator
Source .NET (Dotnet) FONCTIONS DE VÉRIFICATION DE LA SYNTAXE D'UNE CHAINE par vladam

 Sources en rapport avec celle ci

FONCTION SUPPRIMANT LES TAGS SGML AVEC LES EXPRESSIONS RÉGUL... par garfield90
[REGEXP]TESTER LA VALIDITÉ D'UN E-MAIL par vbtom
TESTER LA VALIDITÉ D'UN E-MAIL par vbtom
TESTER LA VALIDITÉ D'UNE E-MAIL par Nix
TESTER LA VALIDITÉ D'UN E-MAIL. par SuperYan

Commentaires et avis

Commentaire de Jos le 12/01/2002 20:35:10

Je ne veux pas m'acharner sur ton cas, mais j'ai passé un été à trippoter les dates, alors laisses moi t'apporter mes commentaires pour cette source!  héhé  ;-)

Ta technique n'est pas mauvaise pour tester le format 99/99/99 où 9 représente un chiffre quelconque, mais à mon avis, elle n'est pas très efficace pour traiter les dates, en soit.  En effet, si je lui passe 78/95/34 elle me retournera True, mais ça n'aura rien d'une date.  Je te conseille plutôt de te pencher vers la fonction IsDate, qui est tout de même très puissante.

Laisses-moi d'ailleurs te livrer l'exemple fournis dans Vbs Doc, par rapport à cette fonction!

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = "19 octobre 1962": YourDate = #19/10/62#: NoDate = "Bonjour"
MyCheck = IsDate(MyDate)   ' Renvoie True.
MyCheck = IsDate(YourDate)   ' Renvoie True.
MyCheck = IsDate(NoDate)   ' Renvoie False.

@+

Commentaire de vbtom le 12/01/2002 23:01:30

Ouais je sé mais bon c histoire dutiliser les expressions reguliere!
Le but de ce site:
Donnée plein de truc au visiteur!
apres c a lui de trier

c exactement c ke je fais!

Moi jutiliserai jsm une expression réguliere pr une date! c clair!

A#

Commentaire de vbtom le 12/01/2002 23:04:02

tiens g modifie mon expression et ca devrai marcher mieux!

Commentaire de shaiulud le 21/01/2002 10:27:00

ici nous avons un gros proble quand à la validité de la date
ex: un 30 février de dérange pas du tout ni un 31 avril.....

aucun test n'est fais si ne n'est sur les caractères.
si tu veux voir un test qui prend en compte les années bisextiles et séculaires.
tu peux le trouver dans ma librairie javascript dispo ici

Commentaire de vbtom le 27/01/2002 00:24:54

C juste un source pr tester le format de la date pas de prendre en compte le jour exact qd est né le christ.....

Commentaire de vbtom le 27/01/2002 00:26:01

Tu es en train de me poousser a faire une source + rechercher... arf

Commentaire de cyril722 le 13/03/2002 22:32:00

oui mais elle n'est pas tres precise ta fonction.Sans pour autant te vexer il faut que l'annee soit divisible 4 ou 100 et 400

Commentaire de HMax le 22/07/2003 11:29:46

Personnelement, je pense que la meilleur facon de vérifier qu'une date est valide est tout d'abord de la convertir au format ISO.
YYYY-MM-DD HH:MM:SS

Une fois cette date au format ISO, on peut la vérifier avec une RegExp
Ex: ([0-9]{4})(-)([0-1]{1,}[0-9]{1,})(-)([0-3]{1,}[0-9]{1,})( )([0-2]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})(:)([0-5]{1,}[0-9]{1,})
et même lui appliquer un bon vieux IsDate.

Le problème avec les date au format US/FR comme 02/15/2003 ou 15/02/2003 c'est que dans les 2 cas, IsDate renverra vrai, même si on veut vérifier que la date n'est pas au format anglais par exemple... D'ou l'intéret du format ISO, qui ne change jamais. Ne fonctionner qu'avec ce format est à mon avis la seule solution pour éviter tout problème de date.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

tester la validité d'un cookies [ par yoyo2 ] Comment tester un cookies?est-ce que on fait :if request.cookies("mongateauauxpepites")=""ouif isnull(request.cookies("mongateauauxpepites"))ou if ise Tester si la date est cohérente [ par javajavajava ] Bonjour,j'aimerai savoir si en utilisant un RangeValidator on peut tester si une date&nbsp;saisie ds une textbox est sup&#233;rieur a la date du jour RegExp [ par jmtoulon ] Bonjour, je souhaiterais traduire ma demande en expression régulière. Je la chaine suivante Toulon [TLN] - FRANCE le caractère [ doit etre present U controle de validité de date sur un TextBox [ par sibaihamza ] &nbsp;SVP c urgentcomment faire un controle de validit&#233; pour un textbox de date? avec ASP.NETMerci bcp Pb de format de date avec la foncction DatePart. la fonction ne marche pas a chaque fois [ par opala ] Bonjour,Je souhaiterai r&#233;cup&#233;rer la date du jour au format YYYYDDMMj'utilise donc la fonction datepart de tel facon:Dim szMaChaineszMaChaine Les maillons... [ par AbriBus ] Salut a tous,il existe en java un objet StingTokenizer qui permet de "decouper" une expression en fonction d'une autre expression... l'exemple le plus Tester des pages .asp [ par Pepin21 ] Bonjour,je suis une programmeuse d&#233;butante en asp.net. Voil&#224; mon souci. J'arrive tr&#232;s bien &#224; tester des pages .aspx avec mon navig Récupérer la date dans une base de donnée access [ par asetti ] Bonjour,j'ai une base de donn&#233;es access avec un champ "DateEvt".Je voudrais r&#233;cup&#233;rer cette date depuis une asp(j'utilise le langage js suppression auto [ par rony ] bjr,A partir d'une date qui se trouve dans chaque enregistrement de ma table puis je effectuer une suppression automatique des enregistrements qui da tester un lien hypertext avant son éxécution [ par natynat ] je doit trouver une fonction qui permet de tester un lien avant son éxécution et de renvoyer le code retour comme par exemple 404 quand la page n'éxis


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,326 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales