请问这个证件号码是否存在六枝特区电焊证号T520203198111126318

按照GB 11643标准进行身份证验证然后GB/T 2260采用的是2013标准,因为实在无法找到GB/T 2260-84标准所以实际会出现正确的身份证也无法识别的情况,这时候可以通过设置要验证的AreaLevel来降低验证级别如果能找全所有GB/T 2260标准的话,代码也就能加入按生日判断该采用哪个标准的功能下面是具体代码

补充:该部分代码已被重构集成到

/// 身份證号码长度 /// 身份证号码第一位第二位 /// 身份证号码第三位第四位 /// 身份证号码第五位第六位 /// 所在区域对应的编码 /// 获取当前区域的深度,从0开始即如果不存在子区域,则深度为0

验证结果以及验证辅助类

/// 身份证验证结果 /// 验证结果是否通过 /// 如果验证不通过这里包含验证失败的原因 /// 當前验证的证件号 /// 当前证件号长度 /// 根据前17位参数生成的校验位,如果身份证长度为15位则此部分为default(char) //获取区域这块需要调整 //按GB/T 2260 - 2007版本说明,已撤销移除的区域编号不会被其它地方使用如果确认是这样,那么完全可以只需要GBT2260基类,并且新增一个已移除Dictionary用于查询就可以 //否则的话可鉯每期GBT2260标准都如现在一样,设置对应的类然后按出生日期确定算法从这些集合中找到对应的区域编号 15位身份证号码各位的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-12位出生年月日,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位為顺序号,其中15位男为单数女为双数; 与18位身份证号的第二个区别:没有最后一位的验证码。 15位身份证号码升级成18位身份证号码时并鈈会修正GB/T 2260发生变化导致的区域编号变更,所以如果按最新的GBT2260标准进行身份证校验会导致有些正确的身份证校验失败 18位身份证号码各位数芓的含义: 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-14位出生年月日,比如代表1967年4月1日遵循GB/T 标准; 15-17位为顺序号,其中17位男为单数女为双数; 18位为校验码,0-9和X由公式随机产生。 举例: 010012这个身份证号的含义:13为河北05为邢台,03为桥西区出生日期为1967年4月1日,顺序号为0012为验证码。 /// 校验码加权因子 /// 按照ISO.MOD取模结果对应的校验码(对应数组索引) /// 18位身份证按照GB 11643标准进行身份证号码驗证 /// 15位身份证也不知道按照的是哪个标准 ^b^!! /// 验证身份证是否为合法的身份证号码

我要回帖

更多关于 T.I 的文章

 

随机推荐