您的位置:首页 > Web前端 > JavaScript

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

2013-11-01 13:57 274 查看
//身份证验证中页面上要有一个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">身 份 证 号 码</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">机 构 代 码</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">营 业 执 照 号</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 )  <
dde9
br />
      {  

     $('#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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  js JavaScript jquery 验证