fonction verifdate
Posté : 31 déc. 2010, 12:01
bonjour a tous,
J'ai eu un petit plantage de PC hier et du coup ma page php que je codais est vierge (aller savoir pourquoi...).
Seulement j'ai reussi a recuperer ma fonction verifdate mais elle marche plus...
Je la poste pour voir si un oeil exterieur voit le probleme car pour moi elle est identique a celle d'avant.
Merci d'avance
J'ai eu un petit plantage de PC hier et du coup ma page php que je codais est vierge (aller savoir pourquoi...).
Seulement j'ai reussi a recuperer ma fonction verifdate mais elle marche plus...
Je la poste pour voir si un oeil exterieur voit le probleme car pour moi elle est identique a celle d'avant.
Code : Tout sélectionner
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();
var age_enfant;
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;
}
}
}
}
if (res)
{
document.forms["result_rpfa"].elements[element].value = jour + "/" + mois + "/" + annee;
if (mois < 7) // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e pr�c�dente.
{
age_enfant = 2010 - annee + 1;
}
else // date de naissance au 31/12 le plus proche est le 31/12 de l'ann�e en cours.
{
age_enfant = 2010 - annee;
}
//prendre indice ("date" + i) afin de remplir la case age correspondante ("age" + i)
if (age_enfant < 0)
{
document.forms["result_rpfa"].elements[id1].value = 0;
}
else
{
document.forms["result_rpfa"].elements[id1].value = age_enfant;
}
}
else
{
alert("La date de naissance entr�e n'est pas valide\n(elle doit �tre de la forme jj/mm/aaaa)");
document.forms["result_rpfa"].elements[element].focus();
}
}
//return res;
}