codice:
<script language="javascript">

<!-- 

var re = new RegExp("^(\\d{1,2})/(\\d{1,2})/(\\d{4})$", ""); 
var arrMonths = new Array("Gennaio", "Febbraio", "Marzo", "Aprile","Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre");  

function checkDate(dateObj)

{  

var dt = dateObj.value.match(re);   

if (!dt)    
{      
alert("La data va inserita nel formato mm/gg/aaaa !");
return(false);    
}   

month = dt[1];  
day = dt[2];  
year = dt[3];   

if (month < 1 || month > 12)    

{      

alert("Specificare un mese compreso tra 1 e 12 !");      
return(false);    
}   

// Determina il numero massimo di giorni nel mese month  // Il calendario in uso è quello Gregoriano (introdotto da Papa Gregorio XIII nel 1582)  // ed ha un ciclo di 400 anni con 97 anni bisestili anziché 100.  // Il 1600 era bisestile, 1700, 1800 e 1900 no, il 2000 lo è, 2100, 2200, 2300 no etc.  

if (month == 2) maxDay = (!(year % 4) && ((year % 100) || !(year % 400))) ? 29 : 28;  else maxDay = (month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;   

if (day < 1 || day > maxDay)    

{      
alert("Il mese di " + arrMonths[month - 1] + " non ha " + day + " giorni\nSpecificare un giorno compreso tra 1 e " + maxDay + " !");       
return(false);    
}
return(true);

} 
function isValidDates(frmObj)

{  // Controlla data1  
if (!checkDate(frmObj.DATA_NASCITA))    
{      
frmObj.DATA_NASCITA.focus();      
frmObj.DATA_NASCITA.select();      
return(false);    
}

// Abilita l'invio del FORM  

return(true);
} 

// -->

</script> 

<form method="post" action="edit.asp?cod=<%=cod%>" onsubmit="return(isValidDates(this));">