首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

社会统一信用代码正则js检验

社会统一信用代码是由中国国家市场监督管理总局颁发的,用于标识法人和其他组织的唯一法定身份识别码。它由18位数字或大写字母组成,结构如下:

  • 第1位:登记管理部门代码
  • 第2位:机构类别代码
  • 第3至8位:登记管理机关行政区划码
  • 第9至17位:主体标识码(组织机构代码)
  • 第18位:校验码

为了验证一个字符串是否符合社会统一信用代码的格式,可以使用JavaScript中的正则表达式。以下是一个简单的正则表达式示例,用于检验社会统一信用代码的基本格式:

代码语言:txt
复制
function validateCreditCode(creditCode) {
  // 正则表达式解释:
  // ^[0-9A-Z]{17}[0-9A-Z]$ 表示代码由17位任意数字或大写字母加上最后一位数字或大写字母组成
  // (?:(?:[0-9A-HJ-NP-RT-UW-Y][0-9A-HJ-NP-RT-UW-Y]{15})|(?:(?:[0-9A-HJ-NP-RT-UW-Y][A-HJ-NP-RT-UW-Y])|(?:[0-9][0-9A-HJ-NP-RT-UW-Y]))[0-9A-HJ-NP-RT-UW-Y]{13})) 表示前17位的特定规则
  // [0-9A-Z]$ 表示最后一位可以是数字或大写字母
  const regex = /^(?:(?:[0-9A-HJ-NP-RT-UW-Y][0-9A-HJ-NP-RT-UW-Y]{15})|(?:(?:[0-9A-HJ-NP-RT-UW-Y][A-HJ-NP-RT-UW-Y])|(?:[0-9][0-9A-HJ-NP-RT-UW-Y]))[0-9A-HJ-NP-RT-UW-Y]{13}))[0-9A-Z]$/;
  
  return regex.test(creditCode);
}

// 示例使用
console.log(validateCreditCode('91350100M000100Y43')); // 应该返回 true 或 false

这个正则表达式考虑了社会统一信用代码的特定规则,包括不允许某些字母出现在特定位置,以及最后一位是根据前17位计算得出的校验码。

优势

  • 唯一性:确保每个法人和其他组织有一个独一无二的识别码。
  • 标准化:统一了各类组织的代码体系,便于管理和查询。
  • 信息共享:促进了政府部门间的信息共享和协同监管。

应用场景

  • 工商注册:企业在工商部门注册时需要提供信用代码。
  • 税务登记:税务机关使用信用代码进行税务登记和管理。
  • 银行开户:企业或个人在银行开设账户时需要提供信用代码。
  • 公共信用信息公示:用于公示企业的信用信息。

遇到问题的原因及解决方法

如果在验证过程中遇到问题,可能是由于以下原因:

  • 格式错误:输入的代码不符合规定的格式。
  • 校验码错误:最后一位校验码计算不正确。

解决方法

  • 确保输入的代码完全符合正则表达式的规则。
  • 使用正确的算法重新计算校验码。

如果需要更详细的校验码计算方法,可以参考国家标准GB 32100-2015《法人和其他组织统一社会信用代码编码规则》。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券