javascript验证组织结构代码

组织机构代码是对中华人民共和国内依法注册、依法登记的机关、企、事业单位、社会团体,以及其他组织机构颁发一个在全国范围内唯一的、始终不变的代码标识。国家质检总局负责组织机构代码的管理工作。

如同居民的身份证一样,组织机构代码证是组织机构在社会经济活动中统一赋予的单位身份证。组织机构代码系统覆盖范围广泛,对申领代码单位的资质审核也有数字档案(档案数字化)作为凭证,可以动态追溯每一个组织机构的历史发展变化。

const validateOrganizationCode = (orgCode) => {
  const codeVal = [ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
    'k', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
  const intVal = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
  const crcs = [3, 7, 9, 10, 5, 8, 4, 2]
  if (orgCode !== '' && orgCode.length === 10) {
    let sum = 0
    for (let i = 0; i < 8; i++) {
      const codeI = orgCode.substring(i, i + 1)
      let valI = -1
      for (let j = 0; j < codeVal.length; j++) {
        if (codeI === codeVal[j]) {
          valI = intVal[j]
          break
        }
      }
      sum += valI * crcs[i]
    }
    let crc = 11 - (sum % 11)
    switch (crc) {
      case 10:
        crc = 'X'
        break
      default:
        break
    }
    if (crc === orgCode.substring(9)) {
      return true
    }
  }

  return false
}

 

Author: Yakima
关于作者:楠溪江人,出生于1991年,目前坐标上海。读书时代跳过级、保过送,工作后转过行。2013年本科毕业于北药。看书、码字、敲代码、打羽毛球是我花时间的爱好。曾在某上市药企任国际药品注册岗,现在某高新企业任前端管理岗。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据