统一社会信用代码校验规则

统一社会信用代码的构成

社会组织统一社会信用代码是为每个社会组织发放一个唯一的、终身不变的主题标识代码,并以其为载体采集、查询、共享、比对各类主体信用信息,设计为18位。如图:

统一社会信用代码校验规则_第1张图片

统一代码的具体赋码规则如下:
第一部分(第1位):登记管理部门代码。暂按国务院序列规则,5表示民政部门。
第二部分(第2位):机构类别代码。“1”表示社会团体、“2”表示民办非企业单位、“3”表示基金会、“9”表示其他。
第三部分(第3-8位):登记管理机关行政区划码,参照GB/T 2260中华人民共和国行政区划代码标准。(登记机关所在地的行政区划)。
第四部分(第9-17位):主体标识码(组织机构代码),其中第17位为主体标识码(组织机构代码)的校验码。第17位校验码算法规则按照《全国组织机构代码编制规则》(国标GB11714—1997)计算。
第五部分(第18位):统一社会信用代码的校验码。第18位校验码算法规则按照《GB -2015 法人及其他组织统一社会信用代码编制规则》计算。

参照标准:
《GB_32100-2015_法人和其他组织统一社会信用代码编码规则.》
按照编码规则:
统一代码为18位,统一代码由十八位的数字或大写英文字母(不适用I、O、Z、S、V)组成,由五个部分组成:
第一部分(第1位)为登记管理部门代码,9表示工商部门;(数字或大写英文字母)
第二部分(第2位)为机构类别代码;(数字或大写英文字母)
第三部分(第3-8位)为登记管理机关行政区划码;(数字)
第四部分(第9-17位)为全国组织机构代码;(数字或大写英文字母)
第五部分(第18位)为校验码(数字或大写英文字母)


代码字符集对应顺序为:字符0-9对应数字0-9,字母A-Z中去掉I、O、S、V、Z后剩下的20个依次对应数字10-30 统一社会信用代码校验规则_第2张图片

根据《GB 32100-2015 法人和其他组织统一社会信用代码编码规则》,第18位校验算法如下:
式中:MOD(n,m)——表示整数求余函数,例如:函数MOD(31,31)的值为0;i  ——表示统一社会信用代码字符从左到右的位置序号;iC——表示统一社会信用代码第i位置上的代码字符的值,字符对应的值见下表A。18C——表示校验码;iW——表示第i位上的加权因子,iW = MOD()1-(i3,31),加权因子见表2. 校验码计算方法实例输入的统一社会信用代码为91350100M000100Y4Z,校验代码唯一性计算步骤如下:
第一步:列出代码前17位字符位置序号i相对应的各个位置上的字符值iC
统一社会信用代码校验规则_第3张图片
第二步:列出与字符位置序号i相对应的加权因子值iW
在这里插入图片描述
第三步:计算与字符位置序号i相对应的乘积iC×iW
统一社会信用代码校验规则_第4张图片
第四步:计算级数之和= 1640 
第五步:计算整数求余函数MOD。 级数之和1640模31余28,即MOD(1640,31)值为28 第六步:求出校验码字符值。 18C=31- MOD(1640,31)=31-28=3 
第七步:查出校验码字符。 校验码字符值18对应的字符为3。 
第八步:比较原始代码最后一位的字符与校验码字符 原始第十八位字符为“Z”,而计算出的校验码字符为“3”,与校验码不相等,则该“91350100M000100Y4Z”统一社会信用代码格式不正确。 若与校验码相等,则原始统一社会信用代码格式正确

正则匹配:

export const SocialcreditVerify = /[1-9A-GY]{1}[1239]{1}[1-5]{1}[0-9]{5}[0-9A-Z]{10}/   测试存在问题,推荐使用下面的
export const SocialcreditVerify = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g

你可能感兴趣的:(vue,c#)