js验证身份证营业执照组织机构代码等

来源:互联网 发布:查看ubuntu的版本 编辑:程序博客网 时间:2024/03/28 20:16

//身份证验证中页面上要有一个id=ipmessage的标签用来写提示信息

//机构代码验证中页面上要有一个id=agency_code的标签来写提示信息,并且要在CSS里写一个check的CLASS样式用来改变文本状态

//营业执照验证中页面上要有一个id=business_license的标签来写提示信息,并且要在CSS里写一个check的CLASS样式用来改变文本状态

//页面样式,例如:

<style>

.check{
    border:1px solid #826765;
    background-color:#f8e3e2;
    color:#5c0733;
    font-weight:bold;
}

</style>

<div class="gyydXm"><span class="gddyName">身&nbsp;份&nbsp;证&nbsp;号&nbsp;码</span><span class="gddyInput">
    <input type="text" name="identity_card" id="identity_card" value="" class="gyydText" />
    </span><span class="gddyTs">*</span><span id="ipmessage" class="gddyTstext">必填</span></div>


<div class="gyydXm"><span class="gddyName">机&nbsp;构&nbsp;代&nbsp;码</span><span class="gddyInput">
    <input type="text" name="agency_code" id="agency_code" value="" class="gyydText" />
    </span><span class="gddyTs">*</span><span class="gddyTstext">必填</span></div>


<div class="gyydXm"><span class="gddyName">营&nbsp;业&nbsp;执&nbsp;照&nbsp;号</span><span class="gddyInput">
    <input type="text" name="business_license" id="business_license" value="" class="gyydText" />
    </span><span class="gddyTs">*</span><span class="gddyTstext">必填</span></div>

<script>

//身份证

function checkDate( idcard ){
var socialNo = idcard;
if(socialNo == "")  
    {  
      $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
      //alert("输入身份证号码不能为空!");  
      return (false);  
    }  


    if (socialNo.length != 15 && socialNo.length != 18)  
    {  
      $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
     //alert("输入身份证号码格式不正确!");  
      return (false);  
    }  
        
   var area={11:"北京",12:"天津",13:"河北",14:"山西",15:"内蒙古",21:"辽宁",22:"吉林",23:"黑龙江",31:"上海",32:"江苏",33:"浙江",34:"安徽",35:"福建",36:"江西",37:"山东",41:"河南",42:"湖北",43:"湖南",44:"广东",45:"广西",46:"海南",50:"重庆",51:"四川",52:"贵州",53:"云南",54:"西藏",61:"陕西",62:"甘肃",63:"青海",64:"宁夏",65:"新疆",71:"台湾",81:"香港",82:"澳门",91:"国外"};   
       
     if(area[parseInt(socialNo.substr(0,2))]==null) {  
      $('#ipmessage').html('身份证号码不正确(地区非法),必须是15位到18位的身份证号');
     //alert("身份证号码不正确(地区非法)!");  
          return (false);  
     }   
            
    if (socialNo.length == 15)  
    {  
       pattern= /^\d{15}$/;  
       if (pattern.exec(socialNo)==null){  
          $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
         //alert("15位身份证号码必须为数字!");  
          return (false);  
      }  
      var birth = parseInt("19" + socialNo.substr(6,2));  
      var month = socialNo.substr(8,2);  
      var day = parseInt(socialNo.substr(10,2));  
      switch(month) {  
          case '01':  
          case '03':  
          case '05':  
          case '07':  
          case '08':  
          case '10':  
          case '12':  
              if(day>31) {  
                  $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
                 //alert('输入身份证号码不格式正确!');  
                  return false;  
              }  
              break;  
          case '04':  
          case '06':  
          case '09':  
          case '11':  
              if(day>30) {  
                  $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
                 //alert('输入身份证号码不格式正确!');  
                  return false;  
              }  
              break;  
          case '02':  
              if((birth % 4 == 0 && birth % 100 != 0) || birth % 400 == 0) {  
                  if(day>29) {  
                      $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
                     //alert('输入身份证号码不格式正确!');  
                      return false;  
                  }  
              } else {  
                  if(day>28) {  
                      $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
                     //alert('输入身份证号码不格式正确!');  
                      return false;  
                  }  
              }  
              break;  
          default:  
              $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
             //alert('输入身份证号码不格式正确!');  
              return false;  
      }  
      var nowYear = new Date().getYear();  
      if(nowYear - parseInt(birth)<15 || nowYear - parseInt(birth)>100) {  
          $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
         //alert('输入身份证号码不格式正确!');  
          return false;  
      }  
      $('#ipmessage').html('通过!');
      return (true);  
    }  
      
    var Wi = new Array(  
              7,9,10,5,8,4,2,1,6,  
              3,7,9,10,5,8,4,2,1  
              );  
    var   lSum        = 0;  
    var   nNum        = 0;  
    var   nCheckSum   = 0;  
      
      for (i = 0; i < 17; ++i)  
      {  
            


          if ( socialNo.charAt(i) < '0' || socialNo.charAt(i) > '9' )  
          {  
              $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
             //alert("输入身份证号码格式不正确!");  
              return (false);  
          }  
          else  
          {  
              nNum = socialNo.charAt(i) - '0';  
          }  
           lSum += nNum * Wi[i];  
      }  


      
      if( socialNo.charAt(17) == 'X' || socialNo.charAt(17) == 'x')  
      {  
          lSum += 10*Wi[17];  
      }  
      else if ( socialNo.charAt(17) < '0' || socialNo.charAt(17) > '9' )  
      {  
          $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
         //alert("输入身份证号码格式不正确!");  
          return (false);  
      }  
      else  
      {  
          lSum += ( socialNo.charAt(17) - '0' ) * Wi[17];  
      }  


        
        
      if ( (lSum % 11) == 1 )  
      {  
     $('#ipmessage').html('通过!');
          return true;  
      }  
      else  
      {  
          $('#ipmessage').html('输入身份证号码格式不正确,必须是15位到18位的身份证号');
         //alert("输入身份证号码格式不正确!");  
          return (false);  
      }  
  }
  /**
*验证营业执照是否合法:营业执照长度须为15位数字,前14位为顺序码,
*最后一位为根据GB/T 17710 1999(ISO 7064:1993)的混合系统校验位生成算法
*计算得出。此方法即是根据此算法来验证最后一位校验位是否政正确。如果
*最后一位校验位不正确,则认为此营业执照号不正确(不符合编码规则)。
*以下说明来自于网络:
*我国现行的营业执照上的注册号都是15位的,不存在13位的,从07年开始国
*家进行了全面的注册号升级就全部都是15位的了,如果你看见的是13位的注
*册号那肯定是假的。
*15位数字的含义,代码结构工商注册号由14位数字本体码和1位数字校验码
*组成,其中本体码从左至右依次为:6位首次登记机关码、8位顺序码。  
    *   一、前六位代表的是工商行政管理机关的代码,国家工商行政管理总局用
        *           “100000”表示,省级、地市级、区县级登记机关代码分别使用6位行
        *             政区划代码表示。设立在经济技术开发区、高新技术开发区和保税区
        *             的工商行政管理机关(县级或县级以上)或者各类专业分局应由批准
        *             设立的上级机关统一赋予工商行政管理机关代码,并报国家工商行政
        *             管理总局信息化管理部门备案。
    *   二、顺序码是7-14位,顺序码指工商行政管理机关在其管辖范围内按照先
        *             后次序为申请登记注册的市场主体所分配的顺序号。为了便于管理和
        *              赋码,8位顺序码中的第1位(自左至右)采用以下分配规则:
    *            1)内资各类企业使用“0”、“1”、“2”、“3”;
    *            2)外资企业使用“4”、“5”;
    *            3)个体工商户使用“6”、“7”、“8”、“9”。  
    *   顺序码是系统根据企业性质情况自动生成的。  
*   顺序码是系统根据企业性质情况自动生成的。  
    *三、校验码是最后一位,校验码用于检验本体码的正确性
*/
    function isValidBusCode(busCode){
        //return true;
        var ret=false;
        if(busCode.length==15){
            var sum=0;
            var s=[];
            var p=[];
            var a=[];
            var m=10;
            p[0]=m;
            for(var i=0;i<busCode.length;i++){
               a[i]=parseInt(busCode.substring(i,i+1),m);
               s[i]=(p[i]%(m+1))+a[i];
               if(0==s[i]%m){
                 p[i+1]=10*2;
               }else{
                 p[i+1]=(s[i]%m)*2;
                }    
            }                                       
            if(1==(s[14]%m)){
               //营业执照编号正确!
                ret=true;
                $("#business_license").removeClass('check');
                $("#business_license").parent().siblings(".gddyTstext").text("营业执照编号正确!");
                //alert("营业执照编号正确!");
            }else{
               //营业执照编号错误!
                ret=false;
                $("#business_license").addClass('check');
                $("#business_license").parent().siblings(".gddyTstext").text("营业执照编号错误!");
                //alert("营业执照编号错误!");
             }
        }//如果营业执照为空
        else if(""==busCode){
            $("#business_license").addClass('check');
            $("#business_license").parent().siblings(".gddyTstext").text("营业执照编号不能为空!");
            ret=false;
        }else{
            ret=false;
            $("#business_license").addClass('check');
            $("#business_license").parent().siblings(".gddyTstext").text("营业执照格式不对,必须是15位数的!");
            //alert("营业执照格式不对,必须是15位数的!");
        }
        return ret;
    }
    /**
*验证组织机构代码是否合法:组织机构代码为8位数字或者拉丁字母+“-”+1位校验码。
*验证最后那位校验码是否与根据公式计算的结果相符。
*编码规则请参看
*http://wenku.baidu.com/view/d615800216fc700abb68fc35.html
*/
function isValidOrgCode(orgCode){
   //return ""==orgCode || orgCode.length==10;
   //return true;
   var ret=false;
   var codeVal = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
   var intVal =    [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35];
   var crcs =[3,7,9,10,5,8,4,2];
   if(!(""==orgCode) && orgCode.length==10){
      var sum=0;
      for(var i=0;i<8;i++){
         var codeI=orgCode.substring(i,i+1);
         var valI=-1;
         for(var j=0;j<codeVal.length;j++){
             if(codeI==codeVal[j]){
                valI=intVal[j];
                break;
             }
         }
         sum+=valI*crcs[i];
      }
      var crc=11- (sum%11);
               
      switch (crc){
                   case 10:{
                       crc="X";
                       break;
                   }default:{
                       break;
                   }
               }
      //alert("crc="+crc+",inputCrc="+orgCode.substring(9));
               //最后位验证码正确
      if(crc==orgCode.substring(9)){
                   ret=true;
                   $("#agency_code").removeClass('check');
                   $("#agency_code").parent().siblings(".gddyTstext").text("正确!");
      }else{
                   ret=false;
                   $("#agency_code").addClass('check');
                   $("#agency_code").parent().siblings(".gddyTstext").text("组织机构代码不正确!");
               }
   }else if(""==orgCode){
       ret=false;
                $("#agency_code").addClass('check');
                $("#agency_code").parent().siblings(".gddyTstext").text("组织机构代码不能为空!");
   }else{
                ret=false;
                $("#agency_code").addClass('check');
                $("#agency_code").parent().siblings(".gddyTstext").text("组织机构代码格式不正确,组织机构代码为8位数字或者拉丁字母+“-”+1位校验码,并且字母必须大写!");
            }
   return ret;

}

</script>

/*思路来源:

http://wenku.baidu.com/view/71e20c6f011ca300a6c390d2.html

*/

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二岁宝宝蛀牙怎么办 三岁儿童口吃怎么办 3岁儿童口吃怎么办 流产了怀不上宝宝怎么办 产妇脸上长斑怎么办 宝贝肚子涨气怎么办 七个月宝宝便秘怎么办 宝宝功能性便秘怎么办 苹果x手机卡了怎么办 宝宝不吃水果蔬菜怎么办 小宝宝不拉粑粑怎么办 小宝宝个子不高怎么办 孩子不开口说话怎么办 孩子吹空调发烧怎么办 孩子上学不想上怎么办 孩子上学想留级怎么办 孩子口算太慢怎么办 孩子浮躁没耐心怎么办 如果孩子打妈妈怎么办 孩子英语成绩不好怎么办 小孩说话发音不准怎么办 小孩gk发音不准怎么办 大学无英语基础怎么办 孩子应用题理解不透怎么办 嫉妒一个人好痛苦怎么办 爱嫉妒别人怎么办心理 总有人嫉妒我怎么办 从小嫉妒闺蜜怎么办 怕闺蜜比我好怎么办 孩子不会做应用题怎么办 当你嫉妒别人怎么办 单位社保发票丢失怎么办 单位医保发票丢失怎么办 图书明细没有给怎么办 拼音拼不到一起怎么办 孩子不会拼拼音怎么办 小孩子不会拼拼音怎么办 小孩拼音发音不准怎么办 孩子声调不会标怎么办 孩子拼音发音不准怎么办 孩子学拼音不会怎么办?