如何用 js验证时间范围是否正确 

2010-2-30 这样的日期格式应为二月没有30日

解决方案 »

  1.   

    /**
    * 验证日期
    */
    function checkDate(strValue)
    {
        var regTextTime = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578] )|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))$/;
        return regTextTime.test(strValue);
    }
      

  2.   


    alert(isDate("2010-2-30"));
    function isDate(s){
        var s = s.replace(/\-/g,"/");
    var p = s.split("/");
    var y  = parseInt(p[0]);
    var m = parseInt(p[1]) - 1;
    var d = parseInt(p[2]);
    var a = new Date(y,m,d);
    if(a.getFullYear()!=y || a.getMonth()!=m || a.getDate() != d) return false;
    else return true;
    }