前端校验统一社会信用代码

news/2024/11/29 3:39:40/

统一社会信用代码规则

  1. 由18位的阿拉伯数字或大写英文字母(不使用I、O、Z、S、V)组成;
    第1位~第2位、第9位~第18位
     
    [0-9A-HJ-NP-RT-UW-Y]
  2. 第3位~第8位,由阿拉伯数字表示;
     
    [0-9]{6}
  3. 第18位校验码,按照公式计算得出;

代码

function isUnifiedSocialCreditCode(code, loose=false){if(!code || code.length !== 18) return false;// 正则:1-2位=>数字或者字母;3-8位=>数字;9-18位=>数字或者字母const pattern = /^([0-9A-HJ-NP-RT-UW-Y]){2}([0-9]){6}([0-9A-HJ-NP-RT-UW-Y]{10})$/;if(!pattern.test(code)){return false;}// 如果是宽松校验,此时返回trueif(loose){return true;}// 严格校验,开始校验第18位的校验码let code17 = code.substr(0,17); // 截取前17位let code18 = code.substr(17,1); // 第18位校验码// 加权因子const WEIGHT_FACTORS = [1, 3, 9, 27, 19, 26, 16, 17, 20, 29, 25, 13, 8, 24, 10, 30, 28];// 字符集,数组下标表示数值const CHARACTER_SET = ['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'];// 求和let codeList = code17.split('');let sum = 0;codeList.forEach((ele, i)=>{let index = CHARACTER_SET.findIndex(row=>row==ele);sum += (index * WEIGHT_FACTORS[i])})// 求余数let MOD = sum%31;// 求校验码let checkCode = CHARACTER_SET[31 - MOD];return checkCode == code18
}let codeQuJuDe = '91110000101623741K'; // 测试全聚德信用码
let changFengHospital = '911101066976941872'; // 测试北京长峰医院信用码
let xiaMen = '91350211M0000XUF46'; // 厦门云上晴空航空科技有限公司,这个虽然是正常存在的,但是校验不通过console.log(isUnifiedSocialCreditCode(codeQuJuDe)); // true
console.log(isUnifiedSocialCreditCode(changFengHospital)); // trueconsole.log(isUnifiedSocialCreditCode(xiaMen)); // false
console.log(isUnifiedSocialCreditCode(xiaMen, true)); // true

异常

按照国标,校验《厦门云上晴空航空科技有限公司》公司的信用码91350211M0000XUF46,但是校验不通过。因此引入宽松校验,宽松校验不校验第18位的校验码。

国标摘要

统一代码由十八位的阿拉伯数字或大写英文字母(不使用I、O、Z、S、V)组成,包括第一位等级管理部门代码、第2位机构类别代码、第3位~第8位登记管理机关行政区划码、第9位-第17位主体标志码、第18位校验码五个部分。

代码序号

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

代码

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

x

说明

登记管理部门代码1位

机构类别代码1位

登记管理机关行政区划码6位

主体标识码(组织机构代码)9位

校验码1位

规则

数字或者大写英文字母

数字

数字或者大写英文字母

代码字符集:

0~9

A

B

C

D

E

F

G

H

J

K

L

M

N

P

Q

R

T

U

W

X

Y

0~9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

参考资料

国标在线https://www.samr.gov.cn/djzcj/zyfb/zjfb/201612/t20161208_282195.html

📎GB 32100-2015 法人和其他组织统一社会信用代码编码规则.pdfhttps://www.yuque.com/attachments/yuque/0/2023/pdf/2394966/1681973967896-78c62bcd-d95b-4108-9924-7bb626bb5950.pdf

企查查https://www.qcc.com/

全国组织机构统一社会信用代码查询平台https://www.cods.org.cn/


http://www.ppmy.cn/news/831004.html

相关文章

低代码能够为企业带来什么?

目录 1、为企业快速开发应用赋能 2、低成本使用数字化工具 3、满足企业定制化需求 大数据时代的快速发展下,传统的应用开发技术手段渐渐地无法满足企业的高需求。并且,企业想在应用开发的基础上同时实现个性化定制,而传统的技术条件所需要…

java测试生成中征码(数字)

public class Main {public static void main(String[] args) {//企业中征码为 16位 后2位位验证码String checkZZM checkZZM( String.valueOf((int)(Math.random()*101)) String.valueOf(System.currentTimeMillis()) );System.out.println("企业中征码为:…

java测试生成中征码(包含字母、数字)

public static void main(String[] args) {String val genSixToSixteenPsw();System.out.println("企业中征码为:" val);}/*** 随机14位中证码* return*/public static String genSixToSixteenPsw() {String val "";Random random new Rando…

获取服务购买列表

目录 1 获取服务购买列表 2 新增拼团活动 3 商品是否可以参加拼团活动 /// <summary> 获取服务购买列表 /// </summary>

低代码、零代码、免编码平台—对企业有什么优势?

随着社会的发展&#xff0c;支持数字化转型的新软件面临着越来越大的压力。进而会出现开发人员供不应求&#xff0c;众多公司缺乏开发应用程序所需技术人才的现象。这时开发公司就会逐渐倾向低代码或零代码工具平台。这些平台的特点是允许无编程经验的技术人员来构建应用程序&a…

低代码平台和无代码平台哪个更适合开发企业管理系统?

编者按&#xff1a;本文分析了开发企业管理系统所需要的平台特性&#xff0c;并根据这些特点和低代码无代码的优劣比较&#xff0c;得出低代码平台更适合开发企业管理系统。 关键词&#xff1a;私有化部署&#xff0c;可视化设计&#xff0c;源码交付&#xff0c;数据集成&…

企业管理低代码—无代码平台的7个技巧

什么低代码和无代码&#xff1f; 低代码&#xff1a; “低代码”一般说的是“低代码开发平台”,它无需编码或只需要极少量代码就可以快速生成应用程序的开发平台。低代码是基于的理念是&#xff1a;可视化和模型驱动&#xff0c;结合了云原生与多端体验技术&#xff0c;使得它…

江苏省电子税务局中文点选验证码识别研究

最近突发奇想&#xff0c;想研究一下中文识别。因为之前研究过简单数字&#xff0c;字母类的识别&#xff0c;这种识别种类很少&#xff0c;数字就10个&#xff0c;字母顶多就26个。但是一到中文&#xff0c;常用字就有3000多个&#xff0c;数量级有了巨大提升。不知道传统的方…