地址

项目代码 https://files-cdn.cnblogs.com/files/linyisonger/webtoolbox.zip

展示效果

介绍

使用angular前端框架,采用 github actions技术,将项目打包成docker镜像,再连接自己的服务器更新镜像与容器,达到持续集成的效果。

主要代码

  • 行政区划码

    • 读取
  • 统一社会信用代码
    • 生成
    • 校验

行政区划码读取

行政区划代码 http://www.mca.gov.cn/article/sj/xzqh/2020/

2020年11月中华人民共和国县以上行政区划代码 http://www.mca.gov.cn/article/sj/xzqh/2020/202101/20210100031547.shtml

使用正则匹配读取静态html文件内容,插入到数组中去,方便之后维护。

regin.service.ts

export class ReginService {private _regins: IReginModel[] = []public get regins() {return this._regins;}constructor(private http: HttpClient) {this.initialization();}// 初始化async initialization() {const html = await this.http.get("/assets/202101041104.html", { responseType: "text" }).toPromise();const trs = html.match(/<tr height=19 style='mso-height-source:userset;height:14.25pt'>[\s\S]*?<\/tr>/g)if (trs instanceof Array) {for (const tr of trs) {const tds = tr.match(/<td.*>([\s\S]*?)<\/td>/g).join('');const name = tds.match(/[\u4e00-\u9fa5]+/)?.[0];const code = tds.match(/<td class=.*>([0-9]+)<\/td>/)?.[1]this._regins.push({ code, name })}}}
}

统一社会信用代码

中华人民共和国国家标准GB32100—2015http://c.gb688.cn/bzgk/gb/showGb?type=online&hcno=24691C25985C1073D3A7C85629378AC0

根据GB32100—2015标准生成以及校验(旧的统一社会信用代码,可能会校验失败)

unified-identifier.service.ts

export class UnifiedIdentifierService {// 登记管理部门代码标识  public registrationManagementDepartmentCode: IRegistrationManagementDepartmentCodeModel[] = [...]// 机构类别public institutionsCategory: IInstitutionsCategoryModel[] = [...]// 主体标识码public subjectIdentificationCode: ISubjectIdentificationCodeModel[] = [...]// 代码字符集对应数public codeCharacterSetNumber: ICodeCharacterSetNumberModel[] = [...]constructor(public reginService: ReginService) { }// 生成public async generate(institutionsCategory: IInstitutionsCategoryModel[] = this.institutionsCategory, regins: IReginModel[] = this.reginService.regins) {if (institutionsCategory?.length == 0) return "";if (regins?.length == 0) return "";// 登记管理部门代码1位 机构类别代码1位const ic = institutionsCategory[this.radomNumber(institutionsCategory.length)];// 登记管理机关行政区划码6位const rc = regins[this.radomNumber(regins.length)];// 主体标识码(组织机构代码)9位const sic: ISubjectIdentificationCodeModel[] = [];for (let i = 0; i < 9; i++) {sic.push(this.subjectIdentificationCode[this.radomNumber(this.subjectIdentificationCode.length)])}const code = ic.parentCode + ic.code + rc.code + sic.map(c => c.code).join("")return code + this.checkCode(code);}// 验证public async verification(code: string) {if (code.length != 18) return { message: "长度不正确", isSuccess: false };if (!/[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}/g.test(code)) return { message: "规范不正确", isSuccess: false };if (this.checkCode(code.substring(0, 17)) != code.substring(17, 18)) return { message: "验证码错误", isSuccess: false };return { message: "验证成功", isSuccess: true };;}// 随机0~max的整数private radomNumber(max: number) {return Math.floor((Math.random() * max))}// 校验码 public checkCode(code: string) {// 积和 let ps = code.split("").map((char, i) => {// 字符数let cn = this.codeCharacterSetNumber.find(c => c.code == char).num;// 权重因子let wn = Math.pow(3, i) % 31;return cn * wn;}).reduce((prev, curr) => prev + curr);return this.codeCharacterSetNumber.find(c => c.num == (31 - ps % 31))?.code || 0;}
}

Angular 统一社会信用代码生成校验相关推荐

  1. 全网唯一正确身份证和社统一社会信用代码自定义表单校验器(身份证校验和社统一社会信用代码校验)

    话不多说,直入正题: 1.工具类: import * as moment from 'moment'; import {isUndefined} from 'util'; import {Abstra ...

  2. Python实现统一社会信用代码校验(GB32100-2015)

    Python实现统一社会信用代码校验 统一社会信用代码国标校验 统一社会信用代码国标校验规则 示例说明 Python代码实现(仅实现GB- 32100-2015中的规则) 统一社会信用代码国标校验   ...

  3. Vue+iView身份证、统一社会信用编码校验

    身份证校验 export default {data() {const IdCardNum= (rule, value, callback) => {//非空校验if(!value){retur ...

  4. 组织机构代码和统一社会信用代码校验规则以及java校验工具类

    组织机构代码 编码规则编辑 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成. 本体代码采用系列(即分区段)顺序编码方法. 校验码按照以下公式计算: C9 ...

  5. JAVA 身份证校验与统一社会信用代码校验

    B话少说,上代码 原理默认大家都懂了,不懂的话可以百度一下 package com.microlinktech.rns.util;import lombok.Getter; import lombok ...

  6. 实现统一社会信用代码校验

    社会信用代码:由18位数字和大写的字母组成,第1位是登记管理部门代码,第2位是机构类别代码,第3~8位登记管理机关行政区划码,第9~17位主休标识码,第18位校验码.有五个部分组成. 具体详情请点击: ...

  7. hive自定义函数实现组织机构代码、统一社会信用代码校验

    一.根据中华人民共和国国家标准全国组织机构代码(9位)编制规则实现规则校验 1.组织机构代码编码规则 1.1组织机构代码的组成 全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉 ...

  8. 身份证号码及统一社会信用代码校验

    /** * 身份证号码验证 * rule为form表单当前验证的filed对应的验证rule规则 * value为当前输入框返回值 * callback为回调函数,验证成功直接回调,验证失败回调函数返 ...

  9. 全国组织机构统一社会信用代码校验 - Java 版

    主要是网上错误的代码太多,为了避免大家踩坑,特此更正,详细规则如下: GB 32100-2015 法人和其他组织统一社会信用代码编码规则 private static final String BAS ...

  10. 使用Java校验【统一社会信用代码】真假

    统一社会信用代码校验规则: 定义一个方法判断统一社会信用代码真假: /*** 验证机构代码真假** @param orgCode 组织机构信用代码* @return 真返回true 假返回false* ...

最新文章

  1. 这54个docker命令!你必须懂!
  2. html左边高140px怎么设置,html:侧边栏+滚动div,高度设置为当前页面大小
  3. boost::log::expressions::has_attr用法的测试程序
  4. 一家美资企业的java servlet面试题
  5. HTTP Content-Type类型
  6. 模态对话框阻塞主线程的话不影响其他线程操作主线程控件(不阻塞)
  7. java图片的导出,并压缩
  8. hypopg1.3.0 使用-常用命令
  9. isp mpls专线
  10. MATLAB函数调用
  11. Python常用中文分词库:jieba
  12. python实现列主元消去法解线性方程组
  13. 靠!我被项目经理和同事嘲笑了,因为不会远程debug调试...
  14. 年薪80万难觅技术人才 杭州区块链人才需求旺盛
  15. 菜鸟蜕变成高手之菜鸟血淋淋的总结
  16. QT Creator 应用程序*.exe文件打包发布详细教程【绿色便携形式 和 安装包形式】
  17. import torch ModuleNotFoundError: No module named ‘torch‘
  18. 中专计算机的听课记录,计算机听课记录.doc
  19. 并注册烧写钩子 获取启动介质类型_一种基于USB烧写的数据传输方法与流程
  20. Windows-电脑蓝屏问题

热门文章

  1. 我来告诉你,一个草根程序员如何进入BAT
  2. antd系列之Select
  3. 几个项目管理的小故事
  4. SAP License:FI-现金流量表的几种实现方式
  5. 【ArcGIS】Packaging succeeded,but publishing failed unable to connect to publishing tools service
  6. linux下QT发布程序双击打不开解决方法
  7. 第十七周博客作业西北师范大学|李晓婷
  8. OpenTCS打造移动机器人交通管制系统(五)
  9. 在唯一密钥属性“fileExtension”设置为“.json”时,无法添加类型为“mimeMap”的重复集合项...
  10. Photographic Tone Reproduction for Digital Images