//身份证验证中页面上要有一个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

*/

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

  1. js 验证身份证号码正确性

    今天找半天js验证身份证的,从网上找了很多,自己也总结了一下,在此记录,以便以后使用查询方便,也供大家参考. 代码如下,可直接用 function isIdCardNo(num) { num = nu ...

  2. angularjs 验证身份证格式 和 一般JS验证身份证格式

    1:angularjs 验证身份证格式 1.1 定义身份证验证指令: .directive('cardCheck',['$http','$rootScope',function($http,$root ...

  3. js验证身份证号码包括最后一位字母

    通过正则进行js验证身份证号码: var numRegex = /^([a-zA-Z\d_]{1,18})$/;if (!numRegex.test(val)) {return '请输入身份证号码或格 ...

  4. js验证身份证号码是否正确(整理)

    使用:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ if(!(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(v ...

  5. python读取身份证照片信息_python验证身份证信息实例代码

    identity-card 验证身份证号码的正确性,不能仅仅通过正则表达式来验证,我们都知道我国的身份证一共是18位,由十七位数字本体码和一位校验码组成. 其排列顺序从左至右依次为:六位数字地址码,八 ...

  6. 使用js验证身份证号格式以及身份证号中的生日验证

    由于不管是测试项目练手还是实际项目开发,都应该考虑数据的严密性和软件的通俗易懂的实用性,下面是我用js实现的验证身份证号格式以及身份证号中的生日验证代码 //生日移出点击事件验证身份证号中的生日验证 ...

  7. js 验证身份证号,根据身份证获取出生年月/性别

    用到的input <input id="idCard" name="idCard" class="form-control" type ...

  8. php验证身份证的合法性 ps:js验证身份证的合法性

    php验证的方法: /*** 验证身份证的合法性*/public function isIdCard($number){ // 检查是否是身份证号// 转化为大写,如出现x$number = strt ...

  9. js验证身份证号的真实性

    身份证号码结构 组成说明 计算方法 代码验证 身份证号码结构 组成说明 公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成. 前6位为地址码,以数字1-9开头,后5位为0-9的数字: 第 ...

  10. js 验证身份证号码

    idCard.js部分******************************************************* //******************************* ...

最新文章

  1. 正确使用STL-MAP中Erase函数
  2. 利用三个点(trsf)来实现各种规则图形的实现
  3. html 传参数 菜单自动展开,【HTML5】Jquery打造竖向伸缩/展开菜单
  4. python使用教程pandas-python使用pandas处理excel的方法
  5. 百度android广告sdk下载,IS_Freedom
  6. python json按输入顺序输出内容
  7. 贪心法——最优装载问题
  8. 牛客 2022年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 签到题13题
  9. Nagios配置文件nagios.cfg详解
  10. Web—sublime安装包、自动生成代码、使用Emmet插件快速编写CSS样式、emmet(快速开发)的使用
  11. 协程asyncio_迭代器,生成器,协程
  12. 笔记——c51的led点阵流动字幕
  13. 保健操对颈椎病有辅助治疗。
  14. 什么是溢出?补码加法运算如何判断是否溢出?
  15. Python使用 Pyvisa库 控制 NI 设备Fluke(详细)
  16. 成功焊接BGA芯片技巧
  17. 全面解说OCA全贴合优势
  18. 我的世界服务器配置推荐,搭建我的世界服务器教程
  19. 用户角色及权限管理设计实例(基于RBAC模型)
  20. 1台电脑可以上网,通过网络共享,让另外一台电脑也可以上网

热门文章

  1. 一周搞定scrapy之3,将爬取到的起点中文网信息保存到mysql
  2. run rhadoop
  3. 煤矿AI智能视频分析识别系统解决方案
  4. HCNA每日一练错误
  5. 网络流专题(最大流与费用流)例题总结
  6. idea 内嵌浏览器 翻译
  7. 关于在winform窗体中内嵌浏览器控件
  8. 神奇宝贝HTML游戏代码,方舟生存进化神奇宝贝代码资料大全
  9. 阜阳智慧城市建设居全国地市级城市第11位
  10. 在哪里可以找水系图_请问在哪可以找到广西的水系图