Puoi provare questo....
codice:<script language="JavaScript" type="text/javascript"> <!-- function ctlData(data) { //---------- Si prova a fare il match su un valore +/- valido re= /^([0-3][0-9])\/([0-9]{2})\/([0-9]{4})$/; risultato = data.match(re); if (risultato == null) { return false; } else { // var chkData = new Date(); //-------- risultato č un array che nel 1° posto (indice 0) // contiene il valore del parametro data // nel secondo il giorno, nel terzo il mese e nel quarto l'anno //-------- Anno chkData.setFullYear(risultato[3]); //-------- Mese : Meno 1 xche Gennaio č il mese 0 !!! chkData.setMonth(risultato[2] - 1); //-------- Giorno chkData.setDate(risultato[1]); //-------- A questo punto, il js ha risettato la data se ad esempio immetto // 32/12/2004 mi ritornerā 01/01/2005 //-------- Adesso confronto i dati della mia data con i dati dell'array //-------- Giorno if (chkData.getDate() != risultato[1]) { return false; } // if (chkData.getDate() != risultato[1]) //-------- Mese if (chkData.getMonth() != risultato[2] - 1) { return false; } // if (chkData.getMonth() != risultato[2] - 1) //-------- Anno if (chkData.getFullYear() != risultato[3]) { return false; } // if (chkData.getFullYear() != risultato[3]) //-------- A questo punto nessun errore return true; } // if (risultato == null) } alert(ctlData('31/12/2004')); alert(ctlData('16/02/2005')); // alert(ctlData('33/11/2004')); alert(ctlData('01/13/2004')); alert(ctlData('3/2/2004')); alert(ctlData('03/02/04')); //--> </script>

Rispondi quotando