Webmaster Hub: Vérifiez une date en raisonnant par l'absurde ! - Webmaster Hub

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Vérifiez une date en raisonnant par l'absurde ! Trucs et astuces Javascript

#21 L'utilisateur est hors-ligne   David Vincent 

  • Groupe : Membre
  • Messages : 16
  • Inscrit(e) : 01-septembre 03

Posté 29 juillet 2004 - 16:16

Absoluement, ma fonction peut être simplifiée au niveau de la vérification syntaxique grâce à une expression régulière. Je ne connaissais pas à l'époque et c'est pour ça que je n'en ai pas mis.

Celle-ci devrait faire l'affaire :

function isDateValid(chaineDate) {

// Je regarde tout d'abord si la chaîne n'est pas vide, sinon pas la peine d'aller plus loin
if (chaineDate == "") return false

// J'utilise une expression régulière pour normaliser ma date en "JJ/MM/AAAA"
// au cas où la date aurait été saisie au format "JJ-MM-AAAA" ou "JJ.MM.AAAA".
chaineDate = chaineDate.replace(/(-|\.)/g, "/")

// Je teste ensuite si la date contient des entiers.
// Le jour et le mois inférieurs à 10 peuvent être écrits sans le zéro.
// L'année doit être sur 4 chiffres.
if (chaineDate.search(/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/) == -1) return false

// On crée un tableau dans lequel on récupère les jour mois année
var ladate = chaineDate.match(/\d{2,4}/g)

// Maintenant on crée la date correspondante. Attention, les mois sont étalonnés de 0 à 11
var unedate = new Date(eval(ladate[2]),eval(ladate[1])-1,eval(ladate[0]))

// Bug de l'an 2000 oblige, lorsque je récupère l'année, je n'ai pas toujours 4 chiffres selon les navigateurs, je rectifie donc ici le tir.
var annee = unedate.getYear()
if ((Math.abs(annee)+"").length < 4) annee = annee + 1900

// Il ne reste plus qu'à vérifier si le jour, le mois et l'année obtenus sont les mêmes que ceux saisis par l'utilisateur.
return ((unedate.getDate() == eval(ladate[0])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[2])))
}


Ah, c'est quand-même dur de s'y mettre aux expressions, régulières, mais ça rend bien des services quand-même.

Ce message a été modifié par David Vincent - 29 juillet 2004 - 16:21.

David Vincent
Music by John Williams
http://musicby.jw-music.net
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)