posts - 7, comments - 17, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
  这是最近自己写的一个校验如“2006-07-13 00:00:00”形式日期的javascript代码。考虑到了数字验证、闰年、2月,30天31天,小时,分,秒的检验。思路稍偏,记一下 
//Long time format validate,for example "2006-07-13 00:00:00"
functionlongDateParse(dateStr){
    var THIRTY_DAY={
       3:30,
       5:30,
       8:30,
       10:30
    }
    var dateArray=dateStr.split(" ");
    if(dateArray.length<=0){returnfalse}

    varstandDateArray=dateArray[0].split("-")
    if(standDateArray.length<=0){returnfalse}
    var y=standDateArray[0]
    var m=standDateArray[1]-1
    var d=standDateArray[2]
    var testDate=newDate(y,m,d)
    
//alert(testDate)
    var yTest=testDate.getFullYear()!=y
    var mTest=testDate.getMonth()!=m
    var dTest=testDate.getDate()!=d
    if(yTest||mTest||dTest){
        returnfalse
    }
    
    var runNianTest=y%4
    if(runNianTest==0&&m==2&&d>29){
        returnfalse;
    }
    if(runNianTest!=0&&m==2&&d>28){
        returnfalse;
    }

    if(THIRTY_DAY[m]&&d>THIRTY_DAY[m]){
        returnfalse;
    }
    
//alert(testDate)

    var timeArray=dateArray[
dateArray.length-1].split(":");
    if(
timeArray.length!=3){return false}
    var hTest=((timeArray[0]>=0)&&(timeArray[0]<=23)&&(timeArray[0]!='-0'))?true:false;
    var mTest=((timeArray[1]>=0)&&(timeArray[1]<=59)&&(timeArray[1]!='-0'))?true:false;
    var sTest=((timeArray[2]>=0)&&(timeArray[2]<=59)&&(timeArray[2]!='-0'))?true:false;
    if(hTest&&mTest&&sTest){
        returnnewDate(y,m,d,timeArray[0],timeArray[0],timeArray[0]);
    }else{
        returnfalse;
    }    
}

只有注册用户登录后才能发表评论。


网站导航: