JS时间校验

function isValidDateString(dateString){ var pattern=/^ *(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})*$/; var arr=pattern.exec(dateString); if(arr==null) return false; var year=arr[1]; var month=arr[2]; var day=arr[3]; var hour=arr[4]; var minute=arr[5]; var second=arr[6]; return IsValidDate(year,month,day,hour,minute,second); } 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; } // 验证60 // 对于分钟,秒数,小时的校验的算法是一样的,本方法被复用 function IsValidNum(psSecond,num) { //alert(psSecond); // alert(num); var second = new String(psSecond); if(second==null) { return false; } if(isNaN(second)==true) { return false; } if(second == "") { return true; } if(second.match(/[^0-9]/g)!=null) { return false; } var nSecond = parseInt(second, 10); if((nSecond < 0) || (num <= nSecond)) { return false; } return true; } // 验证小时 function IsValidHour(hour) { return IsValidNum(hour,24); } // 验证分钟 function IsValidMinute(minute) { return IsValidNum(minute,60); } // 验证秒数 function IsValidSecond(second) { return IsValidNum(second,60); } function IsValidDate(psYear, psMonth, psDay,psHour,psMinute,psSecond) { if(psYear==null || psMonth==null || psDay==null || psHour==null || psMinute == null || psSecond == null) { return false; } var sYear = new String(psYear); var sMonth = new String(psMonth); var sDay = new String(psDay); var sHour = new String(psHour); var sMinute = new String(psMinute); var sSecond = new String(psSecond); if(IsValidYear(sYear)==false) { return false; } if(IsValidMonth(sMonth)==false) { return false; } if(IsValidDay(sDay)==false) { return false; } if(IsValidHour(sHour)==false) { return false; } if(IsValidMinute(sMinute)==false) { return false; } if(IsValidSecond(sSecond)==false) { return false; } var nYear = parseInt(sYear, 10); var nMonth = parseInt(sMonth, 10); var nDay = parseInt(sDay, 10); var nHour = parseInt(sHour, 10); var nMinute = parseInt(sMinute, 10); var nSecond = parseInt(sSecond, 10); if(sYear=="" && sMonth=="" && sDay=="" && sHour=="" && sMinute=="" && sSecond=="") { return true; } if(sYear=="" || sMonth=="" || sDay=="" || sHour=="" || sMinute=="" || sSecond=="") { 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; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值