fonction verifier une date
Bonjour a tous,
J'ai un petit probleme et je voudrais savoir si c'etait possible que l'un de vous teste cette fonction chez lui voir si elle marche.
Elle verifie un input ou il y a une date et si elle est bonne elle fait une soustraction et met le resultat dans un input(en gros pour deduire un age)
et j'ai mit cette fonction sur un onblur
Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
function verifDate(element,id1)
{
var tmp = document.forms["result_rpfa"].elements[element].value;
var regsymbol = new RegExp("[ /-]","g"); //verif de la pr�sence d'espace (01 12 2004), de / (01/12/2004) ou de - (01-12-2004)
var regnum = new RegExp("[0-9]{6,8}","g"); //type 011204 ou 01122004
var jour = 0;
var mois = 0;
var annee = 0;
var res = false;
var ladate = new Date();
var annee_courante = ladate.getFullYear().toString();
document.forms["result_rpfa"].elemnts[id1].value = 20;
if (tmp == " ")
{
var taille = tmp.length;
var bool_num = regnum.test(tmp);
var bool_symbol = regsymbol.test(tmp);
if (bool_num)
{
switch(taille)
{
case 6: // cas 011204
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = annee_courante.substr(0,2) + tmp.substr(4,2);
break;
case 8: // cas 01122004
jour = tmp.substr(0,2);
mois = tmp.substr(2,2);
annee = tmp.substr(4,4);
}
}
else
{
if (bool_symbol)
{
switch(taille)
{
case 8: // cas 01/12/04
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = annee_courante.substr(0,2) + tmp.substr(6,2);
break;
case 10: // cas 01/12/2004
jour = tmp.substr(0,2);
mois = tmp.substr(3,2);
annee = tmp.substr(6,4);
}
}
}
if ((jour != 0) && (mois != 0) && (annee != 0))
{
if ((mois == 1) || (mois == 3) || (mois == 5) || (mois == 7) || (mois == 8) || (mois == 10) || (mois == 12)) // mois � 31 jours
{
if (jour < 32)
{
res = true;
}
}
if ((mois == 4) || (mois == 6) || (mois == 9) || (mois == 11)) // mois � 30 jours
{
if (jour < 31)
{
res = true;
}
}
if (mois == 2) // 28 ou 29 jours selon ann�e bisextille
{
if ((annee % 4) == 0)
{
if (jour < 30)
{
res = true;
}
}
else
{
if (jour < 29)
{
res = true;
}
}
}
}
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
if (res)
{
if (mois <= 6) // date de naissance au 31/12 le plus proche est le 31/12 de l'année précédente.
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
document.forms["result_rpfa"].elements[id1].value = 2010 - annee + 1 ;
}
else // date de naissance au 31/12 le plus proche est le 31/12 de l'année en cours.
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
document.forms["result_rpfa"].elements[id1].value = 2010 - annee;
}
//prendre indice ("date" + i) afin de remplir la case age correspondante ("age" + i)
if (document.forms["result_rpfa"].elements[id1].value < 0)
{
document.forms["result_rpfa"].elements[id1].value = 0;
}
}
else
{
alert("La date de naissance entrée n'est pas valide(elle doit etre de la forme jj/mm/aaaa ou un jour/mois n'est peut-être pas correct)");
document.forms["result_rpfa"].elements[element].focus();
}
}
//return res;
} |