身份证号码判断

 
Function issfz(){//判断身份证号码
if(sfzh.value!=""){ //如果表单内容不为空
                     var hh=sfzh.value; //sfzh.value为身份证号码
                     if(hh.length!=15 && hh.length!=18){
                            alert("您输入的身份证号位数不正确/r身份证号码应为15位或18位数字");
                            // sfzh.focus();
                            return false;
                            }
                            if(!isin(hh,"0123456789")){ //调用isin函数,判断号码是否为数值
                                   alert("身份证号码输入有误/r号码必须为数值型");
                                   sfzh.focus();
                                   return false;
                                   }
                            if(hh.length==15){//判断号码位数
                                   //alert("号码为15位");
                                   str="19"+hh.substring(6,12);//从身份证里取出生日数字
              strnew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8);//生日日期
                                   //alert("出生年月为:"+strnew);
                     if(isdate(strnew)=="false"){//调用isdate函数,判断号码里的生日输入是否正确
                                          alert("身份证号输入有误/r请重新输入");
                                          //sfzh.focus();
                                          return false;
                                          }
                                   }
                                   if(hh.length==18){ //判断号码位数
                                   //     alert("号码为18位");
                                          str=hh.substring(6,14);
                                          strnew=str.substring(0,4)+"-"+str.substring(4,6)+"-"+str.substring(6,8);
                                          //alert("出生年月为:"+strnew);
                                          if(isdate(strnew)=="false"){
                                                 alert("身份证号输入有误/r请重新输入");
                                                 //sfzh.focus();
                                                 return false;
                                                 }
                                          }
                     }
}
function isin(sv,sr){//sv字符不包含在sr里面就弹出提示,用来判断身份证是否为数字
       var stmp;
       if(sv.length==0){return(false);}
    for(var i=0;i<sv.length;i++){
              stmp=sv.substring(i,i+1);
              if(sr.indexOf(stmp,0)==-1)
           {return (false);}
             
              }
              return (true);
       }
      
       function isdate(str){//判断日期的函数
   var strSeparator = "-"; //日期分隔符
   var strDateArray;
   var intYear;
   var intMonth;
   var intDay;
   var boolLeapYear;
   var strDate;
   strDate=str;
   strDateArray = strDate.split(strSeparator); //以“-”为分隔符提取年月日
   if(strDateArray.length!=3) {
   //alert("您输入的日期错误");
   return "false";
}
 
   intYear = parseInt(strDateArray[0],10);
   intMonth = parseInt(strDateArray[1],10);
   intDay = parseInt(strDateArray[2],10);
 
   if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) {
   //alert("您输入的日期错误");
   return "false";}
 
   if(intMonth>12||intMonth<1){
 // alert("日期错误,月份必须为0到12之间的一个数");
   return "false";}
 
   if((intMonth==1||intMonth==3||intMonth==5||intMonth==7||intMonth==8||intMonth==10||intMonth==12)&&(intDay>31||intDay<1)){
 // alert("日期错误,您输入月份的相应日份必须为1—31之间");
   return "false";
}
 
   if((intMonth==4||intMonth==6||intMonth==9||intMonth==11)&&(intDay>30||intDay<1)) {
 // alert("日期错误,您输入月份的相应日份必须为1—30之间");
 
   return "false";}
 
   if(intMonth==2){
      if(intDay<1) {
 // alert("日期错误,月份不能为零或空值");
   return "false";}
   
      boolLeapYear = false;
         if((intYear%400==0)||(intYear%4==0 && intYear%100!=0)) //判断闰年
               boolLeapYear = true;
      else
        boolLeapYear = false; //平年
    
 
      if(boolLeapYear){
         if(intDay>29) {
 // alert("日期错误,闰年2月份的日份必须在1—29之间");
   return "false";}
      }
      else{
         if(intDay>28) {
   //alert("日期错误,2月份的日份必须在1—28之间");
   return "false";}
      }
   }
return "true";
}
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值