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;
    }
}

你可能感兴趣的:(JavaScript,jquery,组织机构代码)