0
点赞
收藏
分享

微信扫一扫

JS中对日期的校验


在页面中显示输入框,在输入焦点移开时候检测日期onChange="return checkDateYMD(this)"


checkDateYMD函数实现如下

function checkDateYMD(obj)
 {
     var dateStr = obj.value;
     if (dateStr!='')
     {
      if(!isValidDate(obj)) {
         obj.focus();
         return false;
      }   
     }
 } 
function isValidDate(obj)
 {  var dateStr = obj.value;
    var datePat = /^(\d{4})(\/|-)(\d{1,2})\2(\d{1,2})$/;
    var datePatd = /^(\d{8})$/;
    var year;
    var month;
    var day;
    
    var matchArray = dateStr.match(datePat); // is the format ok?
    var matchAllDArray = dateStr.match(datePatd);
    
    
    if (matchArray == null) {
     if (matchAllDArray==null)
     {
      alert("日期格式不正确,请重新输入!");
      return false;
     }
     else
     {
      year = dateStr.substring(0,4);
      month = dateStr.substring(4,6);
      day = dateStr.substring(6,8);
     }
    }
    else
    {
     year = matchArray[1]; // parse date into variables
     month = matchArray[3];
     day = matchArray[4];
    }
   
    if (month < 1 || month > 12) {
     alert("月份应为01 - 12之间的数字,请重新输入!");
     return false;
    }
    if (day < 1 || day > 31) {
     alert("日期应为01 - 31之间的数字,请重新输入!");
     return false;
    }
    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
     alert(month+"月没有31天,请重新输入!")
     return false;
    }
    if (month == 2) {
     var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
     if (day>29 || (day==29 && !isleap)) {
      alert(year+"年2月没有 " + day + "日,请重新输入!");
      return false;
       }
    }obj.value = year+"-"+month+"-"+day;
    return true;// date is valid
 }


   

size="8" onChange="return checkDateYMD(this)">       οnclick="setday(document.getElementByIdx_x('Expiredate'),this);"
        style="CURSOR: pointer" hspace=10 src="../../image/calendar.gif" />

举报

相关推荐

0 条评论