找回密码
 立即注册

QQ登录

只需一步,快速开始

alu
初级会员   /  发表于:2019-1-23 13:54  /   查看:4269  /  回复:4
统一社会信用代码正则表达式怎么写,从网上找了几个都不准确如:https://www.cnblogs.com/Qos8/p/5889573.html


验证数据:
错误:
91310115121213110T
正确:
91460600MA5RC30P9Y




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

4 个回复

倒序浏览
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-1-23 14:31:13
沙发
本帖最后由 Simon.hu 于 2019-1-23 14:35 编辑

这个确实比较麻烦我网上找了好久,没有找到一个比较靠谱的正则表达式,只能使用代码了主要是给这2个格子添加上名称

具体的做法,见附件的示例工程



主要是这个代码:
  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.             return false;
  31.         } else {
  32.             console.info("yes");
  33.         }
  34.         return true;
  35.     }
  36. }
复制代码


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
alu
初级会员   /  发表于:2019-1-23 18:16:39
板凳
Simon.hu 发表于 2019-1-23 14:31
这个确实比较麻烦我网上找了好久,没有找到一个比较靠谱的正则表达式,只能使用代码了主要是给这2个格子添 ...

打开文件出错,我的版本是4.0.104.0


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2019-1-24 09:13:01
地板
alu 发表于 2019-1-23 18:16
打开文件出错,我的版本是4.0.104.0

请您在官网上下载最新版本的活字格;
目前(2019/01/24)的最新版是4.0.105.0
活字格官网地址:https://www.grapecity.com.cn/solutions/huozige
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2019-1-24 09:15:08
5#
建议您升级一下版本哦~4.0.105.0中修复了一些bug呢,您直接在官网中就可以下载到的https://www.grapecity.com.cn/solutions/huozige
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部