Questa funzione fa un controllo sintattico della stringa data con una regular expression. Passato il controllo sintattico sfrutto l'oggetto Date per verificare che si tratti di una data valida
se la data è valida restituisco l'oggetto data (potrebbe servire) in caso contrario restituisco false
Posso commentarti la funzione
codice:
function dataValida(txt){
//regular expression per il formato gg/mm/aaaa
	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/ 
//se il formato è valido vado avanti coi controlli
	if(re.test(txt)){
//splitto la stringa data sul carattere / così avrò l'array adata con 3 elementi
		var adata = txt.split('/');
//metto in variabili il giorno il mese e l'anno convertendo da stringa a intero
//primo elemento dell'array il giorno
		var gg = parseInt(adata[0],10);
//secondo elemento dell'array il mese
		var mm = parseInt(adata[1],10);
//terzo elemento dell'array l'anno
		var aaaa = parseInt(adata[2],10);
//creo un oggetto data (i mesi in js vanno da 0 a 11 quindi tolgo 1)
		var xdata = new Date(aaaa,mm-1,gg)
//guardo se l'oogetto data corrisponde alla stringa data
		if((xdata.getFullYear()==aaaa) && (xdata.getMonth()==mm-1) && (xdata.getDate()==gg))
			return xdata
		else return false
	}else return false
}
spero ti sia più chiaro ora