这里是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身份证号码正则表达式校验(含最后一位的校验值规则)相关推荐

  1. 15位、18位身份证号码正则表达式

    身份证正则表达式 在项目中遇到身份证号码验证,百度了一些资料,太简单的和太复杂的pass,综合了一些案例,取长补短,形成了个折中版本的,正则表达式如下: var reg =/(^[1-9]\d{5}( ...

  2. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  3. 最新js验证手机号码、电话号码、身份证号码正则表达式代码

    js验证手机号码.电话号码.身份证号码正则表达式 手机号码正则表达式验证 固定电话号码正则表达式 身份证正则 手机号码正则表达式验证 function checkPhone(){ var phone ...

  4. 《Excel 职场手册:260招菜鸟变达人》一第 4 招 身份证号码、银行卡号等超过15位数据的录入技巧...

    本节书摘来异步社区<Excel 职场手册:260招菜鸟变达人>一书中的第1章,第4节,作者: 聂春霞 , 佛山小老鼠 责编: 王峰松,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. java身份证号码正则表达式校验(含最后一位的校验值规则)

    这里是python版本的: https://yanwenjing.blog.csdn.net/article/details/108210623 请仔细阅读注释 点击这里下载判断身份证号码的小工具 身 ...

  6. java 身份证号码正则表达式校验

    /*** 身份证号码验证*/ public class IdentityUtils {public static boolean isIDNumber(String IDNumber) {if (ID ...

  7. python身份证号码共18位_18位身份证校验

    数字:^[0-9]*$ n位的数字:^\d{n}$ 至少n位的数字:^\d{n,}$ m-n位的数字:^\d{m,n}$ 零和非零开头的数字:^(0|[1-9][0-9]*)$ 非零开头的最多带两位小 ...

  8. python身份证号码解析编程_[宜配屋]听图阁

    中国的居民身份证有18位.其中前17位是信息码,最后1位是校验码.每位信息码可以是0-9的数字,而校验码可以是0-9或X,其中X表示10. 身份证校验码算法: 设18位身份证号序列从左到右为: 引用 ...

  9. python 身份证号码有效性验证

    先声明以下代码不是全部原创,网上找了前辈的一些代码,经过自己的部分加工,有了如下的身份证有效性验证代码: #!/usr/bin/env python3 # -*- coding: utf-8 -*-i ...

最新文章

  1. [BuildRelease]build number / id
  2. 第三代DNA测序及其相关生物信息学技术发展概况
  3. VC++环境下获取当前输入法名称
  4. UVa 814 - The Letter Carrier's Rounds
  5. UITextField
  6. 反射如何拿到私有属性_JAVA中反射机制的价值
  7. 下1000个用户的云计算革命
  8. sklearn自学指南(part15)--广义线性回归
  9. uboot,eboot和bootloader的联系
  10. scp拷贝文件夹到另一个服务器目录中
  11. 大数据时代时代舍恩伯格书资源_大数据时代的特征和思维
  12. 微软开源实验环境构建工具 SimuLand,模拟攻击者知识技能
  13. 宏观经济模型代码来源 :MMB库
  14. LVDS,接口,时序讲解,非常好的文章
  15. delphi 多线程3
  16. SitePoint播客#136:政府发布的单个浏览器
  17. 浙江大华流媒体服务器型号,大华DAHUA网络视频存储服务器DH-EVS7024S-DY产品中心_DAV数字音视工程网...
  18. 面试题汇总(基础部分)
  19. 网络协议-HTTPS(笔记)
  20. 秋招向:七月在线错题-python部分

热门文章

  1. 这几部火爆国漫竟然都改编自橙瓜网络文学奖网文之王得主!
  2. 秒杀系统实战(五)| 如何优雅的实现订单异步处理
  3. c语言for循环ppt,c语言for循环课件.ppt
  4. Mac os 升级G++、GCC版本
  5. Linux系统调优——系统整体运行状态排查(七)
  6. pytorch|图卷积神经网络(GCN)在Karate数据集的应用
  7. word2013-论文双栏情况下如何让图片单栏
  8. seo和python_学会了seo为什么还要学python
  9. Android粘性菊花—-粘性LoadingView你所知道的一切
  10. Computer:成功教你如何使用一招—就能找回以前的密码(曾经保存的密码但当前显示为******号的密码)