<script language="JavaScript">
<!--function CheckDate(strDate){
var reg=/^(\d{4})([-])(\d{2})([-])(\d{2})/;
if(!reg.test(strDate)){
alert("日期格式不正确!\n正确格式为:2004-01-01");
return false;
}
var ss=strDate.split("-");
var year=ss[0];
var month=ss[1];
var date=ss[2];
if(!checkYear(year)){return false;}
if(!checkMonth(month)){return false;}
if(!checkDate(year,month,date)){return false;}
return true;
}
function checkYear(year){
if(isNaN(parseInt(year))){alert("年份输入有误,请重新输入!"); return false;}
else if(parseInt(year)<1950 || parseInt(year) >2050){ alert("年份应该在1950-2050之间!"); return false}
else return true;
}
function checkMonth(month){
if(isNaN(parseInt(month))){alert("月份输入有误,请重新输入!"); return false;}
else if(parseInt(month)<1 || parseInt(month) >12){ alert("月份应该在1-12之间!"); return false}
else return true;
}
function checkDate(year,month,date){
var daysOfMonth=CalDays(parseInt(year),parseInt(month));
if(isNaN(parseInt(date))){alert("日期输入有误,请重新输入!"); return false;}
else if(parseInt(date)<0||parseInt(date)>daysOfMonth){ alert("日期应该在1-"+daysOfMonth+"之间!"); return false;}
else return true;
}
function CalDays(year,month){
var days=0;
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31;break;
case 4: case 6: case 9: case 11: days=30;break;
case 2: if(isLeapYear(year)) days=29;
else days=28;
break;
}
return days;
}
function isLeapYear(year){
if((year %4==0 && year %100!=0) || (year %400==0)) return true;
else return false;
}
alert(CheckDate("2005-02-29"));
//-->
</script>只有验证日期的,后边的时间可以自己加

解决方案 »

  1.   

    还有一个办法,就是把年月日解析出来后,用得到的年月日去创建一个日期型的DATE,通过捕获异常判断这个日期是否正确,如果有异常抛出,说明此日期有错误!
      

  2.   

    /*判断日期是否符合规定格式 
    yyyy-(M)M-(d)d 格式 4位年,1或2位月(日)
    */
    function validDateFormat(dateStr){
    if(dateStr.length==0)
    return false ;
    var reg = /^(\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/
    var arr = reg.exec(dateStr);
    if (arr == null) 
    return false;
    var date = new Date(arr[1],arr[3]-1,arr[4]);
    return date.getFullYear()==arr[1] && date.getMonth()==(arr[3]-1) && date.getDate()==arr[4];

    }