Colegas, tentei simplificar ao máximo uma função para verificar a validade de uma data.
Formato: dd/mm/yyyy
// Modo de uso.
analisa_data(document.getElementById('campo_data').value, 'Data de Envio inválida');
function analisa_data(data, mens){
var i = 1;
if (data.length != 10){
i = 0;
}
var dia = data.substring(0, 2);
var mes = data.substring(3, 5);
var ano = data.substring(6, 10);
var vet_dias_meses = Array('31', '28', '31', '30', '31', '30', '31', '31', '30', '31', '30', '31');
var s = '';
for(z=1; z<=vet_dias_meses[mes-1]; z++){
s = s+','+pad(z, 2, '0');
}
s = s.substring(1, 1000);
var vet_dias = s.split(',');
var tot = Array.indexOf(vet_dias, dia);
if (tot == -1){
i = 0;
}
if (i == 0){
alert(mens);
exit;
}
}
// Função necessária pega de um colega na net.
function pad (n, len, padding){
var sign = '',
s = n;
if (typeof n === 'number'){
sign = n < 0 ? '-' : '';
s = Math.abs(n).toString ();
}
if ((len -= s.length) > 0){
s = Array (len + 1).join (padding || '0') + s;
}
return sign + s;
}