统一社会信用代码、纳税人识别号验证规则

本文介绍了统一社会信用代码和纳税人识别号的验证规则,包括GB 32100-2015和GB 11714-1997等相关标准。提供了一个PHP函数,用于检查给定代码的合法性,通过遍历和加权计算校验最后两位。同时,升级后的代码更详细地解释了验证过程,涉及加权因子、权重字符串和余数计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 统一社会信用代码、纳税人识别号验证规则
 * unified social credit identifier check
 * 参考:
 *   GB 32100-2015
 *   GB 32100-2015《法人和其他组织统一社会信用代码编码规则》国家标准第1号修改单
 *   GB 11714-1997
 * 
 * 其他:如果需要的话,可以自行增加对地区编码的校验,位于第3-8位上
 */


function check(code){
    const regx = /^((1[1239])|(2[19])|(3[123459])|(4[19])|(5[1239])|(6[129])|(7[129])|(8[19])|(9[123])|(A[19])|(N[1239])|(Y1))\d{6}[0-9A-Z]{9}[0-9A-Y]$/
    if(!regx.test(code)){return false;}
    const map = ['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']

### Java 中税号的正则表达式 在中国,常见的税号(纳税人识别号)有多种格式。对于企业而言,统一社会信用代码作为新的税号形式广泛使用;而个人所得税号通常是身份证号码。 #### 统一社会信用代码 (USCC) 统一社会信用代码是一个18位字符组成的编码,其构成规则如下: - 前缀为大写字母A至Z中的任意一位; - 接下来是六位行政区划代码; - 然后四位年份; - 后面两位顺序码; - 最后一位校验码可以是数字或字母X[^1]。 对应的正则表达式可写作: ```java String usccPattern = "^[A-Z][0-9]{6}[0-9]{4}[0-9]{2}[0-9A-Za-z]{1}[0-9Xx]$"; ``` 此模式能够有效验证大多数情况下合法的企业税号。 #### 中国公民身份号码 (CIDN) 针对自然人的税号即为其居民身份证件上的编号,一般遵循以下结构: - 总共十八个字符; - 开头六个位置代表地址码; - 下四个数表示出生日期; - 随后的三位随机分配给个体; - 结尾处有个别情况会带有英文字母X的小写或大写形式。 适用于此类情形的正则表达式如下所示: ```java String cidnPattern = "(^\\d{15}$)|(^\\d{17}(?:\\d|x|X)$)"; ``` 这段代码片段可用于检验输入是否符合标准的身份证明文件所规定的样式要求。 为了实现更精确地匹配不同类型的税号,在实际应用中可能还需要考虑更多细节因素以及特定行业的特殊规定。上述例子仅提供了一般性的指导原则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值