python身份证号码正则表达式校验(含最后一位的校验值规则)
这里是java版本的:https://yanwenjing.blog.csdn.net/article/details/76066985
请仔细阅读注释
点击这里下载判断身份证号码的小工具
身份证号码合法校验器 v1.0.exe下载链接
包含了15位和18位身份证号码的判断,正则表达式较长,请左右滑动查看。
import redef is_id_number(id_number):if len(id_number) != 18 and len(id_number) != 15:print('身份证号码长度错误')return FalseregularExpression = "(^[1-9]\\d{5}(18|19|20)\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$)|" \"(^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}$)"# 假设18位身份证号码:41000119910101123X 410001 19910101 123X# ^开头# [1-9] 第一位1-9中的一个 4# \\d{5} 五位数字 10001(前六位省市县地区)# (18|19|20) 19(现阶段可能取值范围18xx-20xx年)# \\d{2} 91(年份)# ((0[1-9])|(10|11|12)) 01(月份)# (([0-2][1-9])|10|20|30|31)01(日期)# \\d{3} 三位数字 123(第十七位奇数代表男,偶数代表女)# [0-9Xx] 0123456789Xx其中的一个 X(第十八位为校验值)# $结尾# 假设15位身份证号码:410001910101123 410001 910101 123# ^开头# [1-9] 第一位1-9中的一个 4# \\d{5} 五位数字 10001(前六位省市县地区)# \\d{2} 91(年份)# ((0[1-9])|(10|11|12)) 01(月份)# (([0-2][1-9])|10|20|30|31)01(日期)# \\d{3} 三位数字 123(第十五位奇数代表男,偶数代表女),15位身份证不含X# $结尾if re.match(regularExpression, id_number):if len(id_number) == 18:n = id_number.upper()# 前十七位加权因子var = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]# 这是除以11后,可能产生的11位余数对应的验证码var_id = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']sum = 0for i in range(0, 17):sum += int(n[i]) * var[i]sum %= 11if (var_id[sum]) != str(n[17]):print("身份证号规则核验失败,校验码应为", var_id[sum], ",当前校验码是:", n[17])return Falsereturn Trueelse:return Falseif __name__ == '__main__':result = is_id_number('41000119900101007x')print(result)
python身份证号码正则表达式校验(含最后一位的校验值规则)相关推荐
- 15位、18位身份证号码正则表达式
身份证正则表达式 在项目中遇到身份证号码验证,百度了一些资料,太简单的和太复杂的pass,综合了一些案例,取长补短,形成了个折中版本的,正则表达式如下: var reg =/(^[1-9]\d{5}( ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 最新js验证手机号码、电话号码、身份证号码正则表达式代码
js验证手机号码.电话号码.身份证号码正则表达式 手机号码正则表达式验证 固定电话号码正则表达式 身份证正则 手机号码正则表达式验证 function checkPhone(){ var phone ...
- 《Excel 职场手册:260招菜鸟变达人》一第 4 招 身份证号码、银行卡号等超过15位数据的录入技巧...
本节书摘来异步社区<Excel 职场手册:260招菜鸟变达人>一书中的第1章,第4节,作者: 聂春霞 , 佛山小老鼠 责编: 王峰松,更多章节内容可以访问云栖社区"异步社区&qu ...
- java身份证号码正则表达式校验(含最后一位的校验值规则)
这里是python版本的: https://yanwenjing.blog.csdn.net/article/details/108210623 请仔细阅读注释 点击这里下载判断身份证号码的小工具 身 ...
- java 身份证号码正则表达式校验
/*** 身份证号码验证*/ public class IdentityUtils {public static boolean isIDNumber(String IDNumber) {if (ID ...
- python身份证号码共18位_18位身份证校验
数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小 ...
- python身份证号码解析编程_[宜配屋]听图阁
中国的居民身份证有18位.其中前17位是信息码,最后1位是校验码.每位信息码可以是0-9的数字,而校验码可以是0-9或X,其中X表示10. 身份证校验码算法: 设18位身份证号序列从左到右为: 引用 ...
- python 身份证号码有效性验证
先声明以下代码不是全部原创,网上找了前辈的一些代码,经过自己的部分加工,有了如下的身份证有效性验证代码: #!/usr/bin/env python3 # -*- coding: utf-8 -*-i ...
最新文章
- [BuildRelease]build number / id
- 第三代DNA测序及其相关生物信息学技术发展概况
- VC++环境下获取当前输入法名称
- UVa 814 - The Letter Carrier's Rounds
- UITextField
- 反射如何拿到私有属性_JAVA中反射机制的价值
- 下1000个用户的云计算革命
- sklearn自学指南(part15)--广义线性回归
- uboot,eboot和bootloader的联系
- scp拷贝文件夹到另一个服务器目录中
- 大数据时代时代舍恩伯格书资源_大数据时代的特征和思维
- 微软开源实验环境构建工具 SimuLand,模拟攻击者知识技能
- 宏观经济模型代码来源 :MMB库
- LVDS,接口,时序讲解,非常好的文章
- delphi 多线程3
- SitePoint播客#136:政府发布的单个浏览器
- 浙江大华流媒体服务器型号,大华DAHUA网络视频存储服务器DH-EVS7024S-DY产品中心_DAV数字音视工程网...
- 面试题汇总(基础部分)
- 网络协议-HTTPS(笔记)
- 秋招向:七月在线错题-python部分
热门文章
- 这几部火爆国漫竟然都改编自橙瓜网络文学奖网文之王得主!
- 秒杀系统实战(五)| 如何优雅的实现订单异步处理
- c语言for循环ppt,c语言for循环课件.ppt
- Mac os 升级G++、GCC版本
- Linux系统调优——系统整体运行状态排查(七)
- pytorch|图卷积神经网络(GCN)在Karate数据集的应用
- word2013-论文双栏情况下如何让图片单栏
- seo和python_学会了seo为什么还要学python
- Android粘性菊花—-粘性LoadingView你所知道的一切
- Computer:成功教你如何使用一招—就能找回以前的密码(曾经保存的密码但当前显示为******号的密码)