javascript判断录入的日期是否合法
function IsValidYear(psYear) { var sYear = new String(psYear); if(psYear==null) { return false; } if(isNaN(psYear)==true) { return false; } if(sYear == "") { return true; } if(sYear.match(/[^0-9]/g)!=null) { return false; } var nYear = parseInt(sYear, 10); if((nYear < 0) || (9999 < nYear)) { return false; } return true; } function IsValidMonth(psMonth) { var sMonth = new String(psMonth); if(psMonth==null) { return false; } if(isNaN(psMonth)==true) { return false; } if(sMonth == "") { return true; } if(sMonth.match(/[^0-9]/g)!=null) { return false; } var nMonth = parseInt(sMonth,10); if((nMonth < 0) || (12 < nMonth)) { return false; } return true; } function IsValidDay(psDay) { var sDay = new String(psDay); if(psDay==null) { return false; } if(isNaN(psDay)==true) { return false; } if(sDay == "") { return true; } if(sDay.match(/[^0-9]/g)!=null) { return false; } var nDay = parseInt(psDay, 10); if((nDay < 0) || (31 < nDay)) { return false; } return true; } function IsValidDate(psYear, psMonth, psDay) { if(psYear==null || psMonth==null || psDay==null) { return false; } var sYear = new String(psYear); var sMonth = new String(psMonth); var sDay = new String(psDay); if(IsValidYear(sYear)==false) { return false; } if(IsValidMonth(sMonth)==false) { return false; } if(IsValidDay(sDay)==false) { return false; } var nYear = parseInt(sYear, 10); var nMonth = parseInt(sMonth, 10); var nDay = parseInt(sDay, 10); if(sYear=="" && sMonth=="" && sDay=="") { return true; } if(sYear=="" || sMonth=="" || sDay=="") { return false; } if(nMonth < 1 || 12 < nMonth) { return false; } if(nDay < 1 || 31 < nDay) { return false; } if(nMonth == 2) { if((nYear % 400 == 0) || (nYear % 4 == 0) && (nYear % 100 != 0)) { if((nDay < 1) || (nDay > 29)) { return false; } } else { if((nDay < 1) || (nDay > 28)) { return false; } } } else if((nMonth == 1) || (nMonth == 3) || (nMonth == 5) || (nMonth == 7) || (nMonth == 8) || (nMonth == 10) || (nMonth == 12)) { if((nDay < 1) || (31 < nDay)) { return false; } } else { if((nDay < 1) || (30 < nDay)) { return false; } } return true; }