<!-- Original: Sandeep V. Tamhankar (stamhankar@hotmail.com) --> 
<!-- This script and many more are available free online at --> 
<!-- The JavaScript Source!! http://javascript.internet.com --> 

// Verifica o formato da data -> DD/MM/YYYY
// Alem disso, verifica a validade dos dias em relacao aos meses
// Retorna null se a data é valida ou a mensagem de erro caso a data
// seja inválida
function isValidDate(dateStr) { 

	// var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/; 

	//To require a 4 digit year entry, use this line instead: 
	var datePat = /^(\d{1,2})(\/)(\d{1,2})\2(\d{4})$/; 

	var matchArray = dateStr.match(datePat); // is the format ok? 
	if (matchArray == null) { 
		return "Data inválida!";
	} 
	// parse date into variables 
	day = matchArray[1]; 
	month = matchArray[3];
	year = matchArray[4]; 
	if (month < 1 || month > 12) { // check month range 
		return "O mês deve estar entre 1 e 12!"; 
	} 
	if (day < 1 || day > 31) {
		return "O dia deve estar entre 1 e 31!"; 
	} 
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		return "O mês " + month + " não tem 31 dias!"; 
	} 
	if (month == 2) { // check for february 29th 
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); 
		if (day>29 || (day==29 && !isleap)) { 
			return "Fevereiro de " + year + " não tem " + day + " dias!"; 
		} 
	} 
	return null; // date is valid 
} 
