验证企业信用代码

 1 function CheckSocialCreditCode(Code) {
 2     var patrn = /^[0-9A-Z]+$/;
 3     //18位校验及大写校验
 4     if ((Code.length != 18) || (patrn.test(Code) == false)) {
 5         console.info("不是有效的统一社会信用编码!");
 6         return false;
 7     }
 8     else {
 9         var Ancode;//统一社会信用代码的每一个值
10         var Ancodevalue;//统一社会信用代码每一个值的权重
11         var total = 0;
12         var weightedfactors = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];//加权因子
13         var str = '0123456789ABCDEFGHJKLMNPQRTUWXY';
14         //不用I、O、S、V、Z
15         for (var i = 0; i < Code.length - 1; i++) {
16             Ancode = Code.substring(i, i + 1);
17             Ancodevalue = str.indexOf(Ancode);
18             total = total + Ancodevalue * weightedfactors[i];
19             //权重与加权因子相乘之和
20         }
21         var logiccheckcode = 31 - total % 31;
22         if (logiccheckcode == 31) {
23             logiccheckcode = 0;
24         }
25         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";
26         var Array_Str = Str.split(',');
27         logiccheckcode = Array_Str[logiccheckcode];
28         var checkcode = Code.substring(17, 18);
29         if (logiccheckcode != checkcode) {
30             console.info("不是有效的统一社会信用编码!");
31             return false;
32         }else{
33             console.info("yes");
34             return true;
35         }
36         return true;
37     }
38 }
View Code

 

posted @ 2019-04-03 16:39  皆大欢喜  阅读(228)  评论(0)    收藏  举报