首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

涨姿势:用Python完成1518身份证的互转

image 最近工作中刚好要清洗一批客户数据,涉及到身份证号码15位和18位的转换,特意研究了下,在这里分享下。 身份证号码的构成 既然谈到了身份证转换,那就需要先了解下证件号码的构成。 ?...其分别对应的最后一位身份证的号码为1 0 X 9 8 7 6 5 4 3 2; 5、通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的X。...解决思路 15位转18位:即身份证号码的前六位数字 + '19' + 身份证第六位以后的数字 + 校验码 (不要问我为什么加19这种白痴(´⊙ω⊙`) @?¥&?...的问题,当然是因为只有19世纪的人才可能拥有15位的身份证号啦) 校验码计算方法就更简单了,将这17位数字和系数相乘的结果相加除以11匹配余数对应的号码即可。...print(card_1) # 18位转15位 card_2 = down_to_fifteen('410125199908222000') print(card_2)

1.9K10

PHP校验15位和18身份证号的类封装

新公司框架源码的时候,发现了这个功能,于是搜索一番并封装了一下身份证号校验的类。 目前大家的身份证号大多是 18 位的,当然,也不排除有些老人的身份证号是 15 位的。...如果强制要求是 18 位的话,会比较好,因为 15 位的身份证号没有校验码,可以说,只要了解大概结构,随手都可以造出一系列身份证号码来。...身份证号规则 15位:省份(2位) + 地级市(2位) + 县级市(2位) + 出生年(2位) + 出生月(2位) + 出生日(2位) + 顺序号(3位) 18位:省份(2位) + 地级市(2位) +...当然,因为可能部分人用的是 15位 的身份证号,所以需要一个转换的办法,不过,这里还是建议限制需要 18位 的身份证号。...检测是否是身份证号码: 这一块的处理比较简单,一个正则表达式搞定了。 其中, (^d{15}) 用于匹配 15身份证号的情况; (^d{17}(d|X)) 用于匹配 18身份证号的情况。

1.1K41

PHP实现15身份证号转18位的方法分析

本文实例讲述了PHP实现15身份证号转18位的方法。...分享给大家供大家参考,具体如下: 第一代身份证15身份证号码的意义 1-2位省、自治区、直辖市代码; 3-4位地级市、盟、自治州代码; 5-6位县、县级市、区代码; 7-12位出生年月日...,比如670401代表1967年4月1日,这是和18位号码的第一个区别; 13-15位为顺序号,其中15位男为单数,女为双数; 与18身份证号的第二个区别:没有最后一位的校验码。...第二代身份证18身份证号码的意义   ①前1、2位数字表示:所在省份的代码,河南的省份代码是41哦!   ...php function CardId15To18($card){ $len = strlen($card); if($len == 18){ return $card; }else

79821

常用正则表达式汇总

手机号验证、邮箱验证、爬虫常用等 身份证验证 //身份证正则表达式(15位) isIDCard1=/^[1-9]\d{7}((0\...-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; 身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$) 更严格的校验,根据校验码验证身份证号真伪:js实现身份证验证...(15位、18位、地址编码、出生日期、校验位验证 )。...\d{7,14}提取信息中的中国邮政编码:[1-9]{1}(\d+){5} 提取信息中的中国身份证号码:\d{18}|\d{15} 提取信息中的整数:\d+ 提取信息中的浮点数(即小数):(-?...提取信息中的中文字符串:[\u4e00-\u9fa5]* 提取信息中的双字节字符串 (汉字):[^\x00-\xff]* 使用案例 JS使用案例:JS验证手机号码电话号 参考: https://www.cnblogs.com

11310

常用表单验证插件

插件地址:https://github.com/gavin125/gavin-Vtype 主要用正则的方式匹配输入内容的格式 分为两个版本: 1、Vtypejs.js为原生js版本 2、Vtype.js...为jquery插件 验证效果为: 1、获得焦点时出现提示,失去焦点时判断结果(密码强度为键盘输入实时判断) 涉及验证的表单项及规则如下: 1、用户名:以字母开头的由字母、数字、下划线组成的5-15...字符 2、密码:以字母、数字和特殊符号组成的6-18字符(超过8位为中,超过10位为强) 3、手机号码:1开头,3578连接数字,共11位 4、邮箱:字母数字下划线点+@+字母数字下划线...+字母数字下划线 5、身份证18位数字15位数字17位数字加x 6、银行卡:1619位数字

2.2K40

爱情36技之Bug大战

售票员 Node.js 小姐姐说:Python 菇凉你的身份证号为 15 位,购票系统提示“身份证号位数不足 18 位”,麻烦请提供 18 位的身份证号。...Java 那小子心中有点浴火,不过这也不能怪 Node.js 小姐姐,只能说他们的系统不支持自动把 15身份证号自行变为 18身份证号,场面很尴尬,那需要赶紧想个招来。...第 18 位数字是校检码:用来检验身份证的正确性。校检码可以是 0~9 的数字,有时也用 X 表示。 15位 vs 18身份证号区别在哪里?...15身份证号出生年月日为 yyMMdd,而 18身份证号格式为yyyyMMdd; 15身份证号没有校验码。 我们该如何实现 15位 转成 18 位的身份证号呢?...经过 Java 那小子近 2 分钟的猛如虎的实现下,成功实现 Python 菇凉身份证 15 位转换成 18 位,然后把 18 位的证件号码给 Node.js 售票员小姐姐提供了一下,意料之中一次性购票成功

39930

新旧身份证(继承)

&day); bool check(); //验证15身份证是否合法 void print(); ~COldID(); }; 然后以COldID为基类派生18身份证号的新身份证类CNewID...确认15身份证正确. 2. 确认18位号码是从15位号码扩展的,且第18位校验码正确. 3. 身份证中的出生日期合法. 4. 身份证号码中不含非法字符. 5. 身份证号码的长度正确. 6....、出生日期年月日、15身份证号码、18身份证号码、签发日期年月日、有效期(100年按长期处理) .........输出 第一个人姓名 第一个人18身份证号信息(号码、签发日期和有效期)"illegal id" 第二个人姓名 第二个人18身份证号信息(号码、签发日期和有效期)"illegal id" .......isdigit(p_id15[i])) return false; } return true; } //验证15身份证是否合法 void print() {} ~COldID

21630
领券