viernes, 2 de diciembre de 2011

Validar fecha con Javascript

Dentro del apartado de validaciones, esta vez voy a mostrar una función para validar si una cadena es una fecha válida usando javascript.

El ejemplo consta de dos funciones: de la función esFechaValida() y de la función comprobarSiBisisesto() la cual ya mostré en un post anterior y que verifica si el año pasado como parámetro es bisiesto.




A continuación el código de ambas funciones:

function esFechaValida(fecha){
    if (fecha != undefined && fecha.value != "" ){
  fecha=fecha.replace(/-/g,'/');
  var expreg = /^([0-9]{4})\/([0-9]{2})\/([0-9]{2})$/;
        if (!expreg.test(fecha)){
            return false;
        }
  var anio =  parseInt(fecha.substring(0,4));   
  var dia  =  fecha.substring(8,10); 
        var mes  =  fecha.substring(5,7);
   
    switch(mes){
        case "01":
        case "03":
        case "05":
        case "07":
        case "08":
        case "10":
        case "12":
            numDias=31;
            break;
        case "04": 
        case "06": 
        case "09": 
        case "11":
            numDias=30;
            break;
        case "02":
            if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
            break;
        default:
            return false;
    }
 
        if (dia>numDias || dia==0){
            return false;
        }
        return true;
    }
}
 
function comprobarSiBisisesto(anio){
if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
    return true;
    }
else {
    return false;
    }
}
Pesándola a la función como parámetro la cadena de texto que deseamos verificar, esta nos devolverá verdadero o falso.

3 comentarios :