紫水晶编程技术论坛 - 努力打造成全国最好的编程论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4736|回复: 1

[ASP] Javascript校验日期合法性和必录性

[复制链接]

1214

主题

1566

帖子

11

精华

管理员

菜鸟

Rank: 125Rank: 125Rank: 125Rank: 125Rank: 125

积分
93743

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2011-6-15 08:39:06 | 显示全部楼层 |阅读模式
编写代码的时候经常遇到的就是日期的校验问题,方法很多,但是找到一个比较准确的却成了程序员们比较头疼的。自己总结了一小段校验日期并且校验必录的代码分享给大家。
具体校验日期合法性和必录性:
<script type="text/javascript" language="text/javascript">
function submit_button(){
if(!document.all.timestart.value){
alert("开始办理业务时间不能为空!");
document.all.timestart.focus();
return;
}
if(!document.all.timeend.value){
alert("结束办理业务时间不能为空!");
document.all.timeend.focus();
return;
}
  if (!isDate(document.all.timestart.value)){
        alert("请输入正确的日期格式!  例如:2000-01-01!");
        document.all.timestart.focus();
        return false;
    }
    if (!isDate(document.all.timeend.value)){
        alert("请输入正确的日期格式!  例如:2000-01-01!");
        document.all.timeend.focus();
        return false;
    }
}
function isDate(str){
      //---   一般输入性判断
      var Strs = str.split("-");
      if(Strs.length!=3){return 0;};
      var AYear=Strs[0],AMonth=Strs[1],ADay=Strs[2];
      if   ((AYear.length!=4)||(AMonth.length!=2)||(ADay.length!=2)){return 0;}
        if   (!/^(\d)+$/.test(AYear)||!/^(\d)+$/.test(AMonth)||!/^(\d)+$/.test(ADay)){return 0;}
        var   tempYear,tempMonth,tempDay;
        //---   非闰年的每个月天数  
        var   constMonth   =   new   Array(31,28,31,30,31,30,31,31,30,31,30,31);   
        tempYear =   parseInt(AYear);
        if((tempYear>2100)||(tempYear<1900)){return 0;}   
        tempMonth = parseInt((AMonth.substring(0,1)=="0")?AMonth.substring(1,2):AMonth);
        tempDay = parseInt((ADay.substring(0,1)=="0")?ADay.substring(1,2):ADay);
        //---   判断月合法性
        if   ((tempMonth==0)||(tempMonth>12)){return 0;}
        if   (tempMonth != 2){
            if((tempDay > constMonth[tempMonth - 1]) || (tempDay ==  0)){return 0;}
        }else{   //---   根据闰年判断
            if((tempYear%4==0)&&(tempYear0!=0)||(tempYear@0==0)){
                if((tempDay>29)||(tempDay==0)){return 0;}
            }else{
                if((tempDay>constMonth[1])||(tempDay==0)){return0;}
            }   
        }  
        return   1  
    }
</script>
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

30

主题

723

帖子

0

精华

钻石会员

Rank: 6Rank: 6

积分
2815
发表于 2015-5-16 13:14:25 | 显示全部楼层
今天任务完成 嘿嘿
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

手机版|Archiver|紫水晶工作室 ( 粤ICP备05020336号 )

GMT+8, 2024-4-28 06:03 , Processed in 0.023297 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表