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;
}
}
推荐阅读
- 操作系统|[译]从内部了解现代浏览器(1)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- vue.js|vue中使用axios封装成request使用
- JavaScript|JavaScript: BOM对象 和 DOM 对象的增删改查
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- JavaScript|JavaScript之DOM增删改查(重点)
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等
- javascript|javascript中的数据类型转换