汇总:
//组织机构代码
function checkOrgCid(orgNum, unType){
if(orgNum == "" || orgNum == null){
return {data: false, msg: '请输入单位证件号码'};
}
// 特殊字符判断和汉字
///[^\u4e00-\u9fa5]/匹配中文字符,[^\x00-\xff]/匹配双字节字符
var re = /[^\x00-\xff]/;
if (/[#\$%\^&\*【】@!!¥?|‘;:”“'。,、?<>+=:]+/g.test(orgNum) || re.test(orgNum)) {
return {data: false, msg: '单位证件号码不允许特殊字符或者中文字符'};
}
if(unType == 49){
//统一社会信用代码
var ret = CheckSocialCreditCode(orgNum);
if(!ret){
return {data: false, msg: '请填写正确的统一社会信用代码'};
}
}else if(unType == 50){
//组织机构代码
var ret = checkorgcode(orgNum);
if(!ret){
return {data: false, msg: '请填写正确的组织机构代码'};
}
}else if(unType == 51){
//工商营业执照
var ret = isValidBusCode(orgNum);
if(!ret){
return {data: false, msg: '请填写正确的工商营业执照'};
}
}else if(unType == 60){
//税务登记证
var ret = numAndupperCaseCheck(orgNum);
if(!ret){
return {data: false, msg: '请填写正确的税务登记证'};
}
}
return {data: true, msg: ''};
}
统一社会信用代码校验规则:
//统一社会信用代码校验规则
function CheckSocialCreditCode(code) {
code = code.replace(/(^\s*)|(\s*$)/g,"")
var testCode = numAndupperCaseCheck(code);
if ((code.length != 18) || (testCode == 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;
}
}
组织机构代码校验规则:
//组织机构代码校验
function checkorgcode(orgcode){
orgcode = orgcode.replace(/(^\s*)|(\s*$)/g,"");
if(orgcode.length!=9){
return false;
}
var patrn=/^[0-9A-Z]+$/;
if(patrn.test(orgcode)==false){
return false;
}
var lastpatrn=/^[0-9X]+$/;
var checkcode=orgcode.substring(8,9);
if(lastpatrn.test(checkcode)==false){//最后的校验为只能是0到9的数字或者大写字母X
return false;
}
var ws = [3, 7, 9, 10, 5, 8, 4, 2];
var str = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var ancode;
var ancodevalue;
var total=0;
for(var i=0;i<orgcode.length-1;i++){
ancode=orgcode.substring(i,i+1);
ancodevalue=str.indexOf(ancode) * ws[i];
total=total+ancodevalue;
}
var logiccheckcode=11-total%11;
if(logiccheckcode==10){
logiccheckcode='X';
}
if(logiccheckcode==11){
logiccheckcode='0';
}
if(checkcode != logiccheckcode){
return false;
} else{
return true;
}
}
工商营业执照校验规则:
//工商营业执照
function isValidBusCode(busCode){
busCode = busCode.replace(/(^\s*)|(\s*$)/g,"");
var ret=false;
if(""==busCode || busCode.length == 0){
return false;
}
var patrn = /^[0-9]+$/;
if(!patrn.test(busCode)){
return 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;
}else{
//营业执照编号错误!
ret=false;
}
} else{
ret=false;
//alert("营业执照格式不对,必须是15位数的!");
}
return ret;
}
税务登记校验:
/**
* 只允许数字和大写字母
* @param code
* @returns {boolean}
*/
function numAndupperCaseCheck(code){
code = code.replace(/(^\s*)|(\s*$)/g,"");
if(code == "" || code.length==0){
return false;
}
var patrn = /^[0-9A-Z]+$/;
return patrn.test(code);
}