if(sj != "" && !sj.match("^\\d{4}-[0-1][0-9]-[0-3]\\d$")){
   alert("时间格式有误!");
   return false;
}验证日期格式为2006-02-30

解决方案 »

  1.   

    <script type="text/javascript">
    function isDate(inputDate){
      if(/(\d{4})-(\d{1,2})-(\d{1,2})/.test(inputDate)){//判断日期格式
        var d=new Date(RegExp.$1, parseInt(RegExp.$2)-1, RegExp.$3);
        if(d.getFullYear()==RegExp.$1 && d.getMonth()+1==RegExp.$2 && d.getDate()==RegExp.$3)
    //判断日期逻辑(如2007-02-30则不合逻辑)
      alert('输入正确!');
    else
      alert('日期不对!')
      }
      else{
        alert('日期格式不对!');
    document.getElementById('date').focus();
    return false;
      }
    }
    </script>
    <input type="text" name="date" id="date" value="" onblur="isDate(this.value)">
      

  2.   

    function isValidDate (str) {////是否是合法的日期时间,日期格式 2006-05-06,2006-5-6
    if(/(?:[^0-9\-])/g.test(str)==true) return false;
    str = str.split('-');
    var year,month,day;
    if(str[0].length!=4 || str[0].substr(0,2)!='20' || str[1].length==0 || str[2].length==0) return false;
    year = parseInt(str[0],10);
    month = parseInt(str[1],10);
    day = parseInt(str[2],10);
    if(month>12 || month==0 || day==0 || ((month==1||month==3||month==5||month==7||month==8||month==10||month==12) && day>31) || ((month==4||month==6||month==9||month==11) && day>30) || (month==2 && day>29) || (new Date(year,2,29).getDate()!=29 && day>28)) return false;
    return true;
    }
      

  3.   

    TO webphoenix() :
    测试1911-1-1怎么成非法的了?