验证证件类型

大憨熊 提交于 2020-08-09 05:53:32

js验证组织机构代码

 

1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成。

本体代码采用系列(即分区段)顺序编码方法。校验码按照以下公式计算:
C9=11-MOD(∑Ci(i=1→8)×Wi,11)
式中: MOD——代表求余函数;
i——代表代码字符从左至右位置序号;
Ci——代表第i位上的代码字符的值(具体代码字符见附表);
C9——代表校验码;
Wi——代表第i位上的加权因子;
当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示。






2.代码的表示形式
为便于人工识别,应使用一个连字符“—”分隔本体代码与校验码。机读时,连字符省略。表示形式为:
xxxxxxxx—X

3.自定义区
为满足各系统管理上的特殊需要,规定本体代码PDY00001至PDY99999为自定义区,供各系统编制内部组织机构代码使用。自定义区内编制的组织机构代码不作为个系统之间信息交换的依据。

// 组织机构代码验证 true:真 false:假
function checkOrgCode(code) {
  var ws = [3, 7, 9, 10, 5, 8, 4, 2];
  var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  var reg = /^([0-9A-Z]){8}-[0-9|X]$/;// /^[A-Za-z0-9]{8}-[A-Za-z0-9]{1}$/
  var sum = 0;
  for (var i = 0; i < 8; i++){
    sum += str.indexOf(code.charAt(i)) * ws[i];
  }
  var c9 = 11 - (sum % 11);
  c9 = c9 == 10 ? 'X' : c9
  alert(c9 +" -- "+ code.charAt(9));
  if (!reg.test(code) || c9 == code.charAt(9)) {
  // alert("不是有效的组织机构代码!");
  return false;
  }else{
  return true;
  }
}


















// 组织机构代码验证 true:真 false:假
function orgcodevalidate(value){
  if(value!=""){
    var values=value.split("-");
    var ws = [3, 7, 9, 10, 5, 8, 4, 2];
    var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    var reg = /^([0-9A-Z]){8}$/;
    if (!reg.test(values[0])) {
      return true;
    }
  var sum = 0;
  for (var i = 0; i < 8; i++) {
    sum += str.indexOf(values[0].charAt(i)) * ws[i];
  }
  var C9 = 11 - (sum % 11);
  var YC9=values[1]+'';
  if (C9 == 11) {
    C9 = '0';
  } else if (C9 == 10) {
    C9 = 'X' ;
  } else {
    C9 = C9+'';
  }
  return YC9!=C9;
  }
}
————————————————
版权声明:本文为CSDN博主「tomhat」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tomhat/java/article/details/84742247




























 

 

统一社会信用代码验证

function CheckSocialCreditCode(Code) {
    var patrn = /^[0-9A-Z]+$/;
    //18位校验及大写校验  
    if ((Code.length != 18) || (patrn.test(Code) == false)) {
        return false;
    } else {
        var Ancode; //统一社会信用代码的每一个值  
        var Ancodevalue; //统一社会信用代码每一个值的权重   
        var total = 0;
        var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28]; //加权因子   
        var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
        //不用I、O、S、V、Z   
        for (var i = 0; i < Code.length - 1; i++) {
            Ancode = Code.substring(i, i + 1);
            Ancodevalue = str.indexOf(Ancode);
            total = total + Ancodevalue * weightedfactors[i];
            //权重与加权因子相乘之和   
        }
        var logiccheckcode = 31 - total % 31;
        if (logiccheckcode == 31) {
            logiccheckcode = 0;
        }
        var Str = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,J,K,L,M,N,P,Q,R,T,U,W,X,Y";
        var Array_Str = Str.split(',');
        logiccheckcode = Array_Str[logiccheckcode];
        var checkcode = Code.substring(17, 18);
        if (logiccheckcode != checkcode) {
            return false;
        }
        return true;
    }
}
复制代码
 
 
 
 
 

/**
*验证组织机构代码是否合法:组织机构代码为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;
}
}else if(“”==orgCode){
ret=true;
}
return ret;*/
}










































/**
*验证营业执照是否合法:营业执照长度须为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)){
//营业执照编号正确!
//alert(“营业执照编号正确!”);
ret=true;
}else{
//营业执照编号错误!
ret=false;
//alert(“营业执照编号错误!”);
}
}else if(“”==busCode){
ret=true;
}
return ret;*/
}

























































/**
*验证国税税务登记号是否合法:税务登记证是6位区域代码+组织机构代码
*/
function isValidTaxCode(taxCode){
var ret=true;
if(isValidOrgCode($(“#memberBase.eOrgCode”).val())){




}
return ret;
}

/**
*验证固定电话号码。固定电话号码格式为:区号-号码
*/
function isValidPhone(phone){
var ret=false;
if(“”==phone || (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?/.test(phone))){
ret=true;
}
return ret;
}
————————————————
版权声明:本文为CSDN博主「soarstarsXie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aoxiangxingkong/java/article/details/46862483











标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!