身份证号码验证,包含两代身份证,第一代和第二代身份证

第一代身份证15位,其编码规则顺序从左至右依次为6位数字地址码,6位数字出生年份后两位及日期,3位数字顺序码。

格式:^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$

正则表达式分解如下:

[1-9]\d{5}:前六位地区,非0开头

\d{2} :出生年份后两位00-99

((0[1-9])|(10|11|12)):月份,01-12月

(([0-2][1-9])|10|20|30|31):日期,01-31天

\d{3}:顺序码三位,没有校验码

第二代身份证18位,其编码规则顺序从左至右依次为6位数字地址码,8位数字出生年份日期码,3位数字顺序码,1位数字校验码(X有时会出现):

格式: ^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

正则表达式分解如下:

[1-9]\d{5} :前六位地区,非0开头

(18|19|([23]\d))\d{2}:出身年份,覆盖范围为 1800-3999 年

((0[1-9])|(10|11|12)):月份,01-12月

(([0-2][1-9])|10|20|30|31):日期,01-31天

\d{3}[0-9Xx]:顺序码三位 + 一位校验码

程序如下:

 private void BtnOK_Click(object sender, RoutedEventArgs e){if (string.IsNullOrEmpty(tbxName.Text)){MessageBox.Show($"姓名不可为空,请重新输入!");tbxName.Focus();return;}Name = tbxName.Text;Regex re = new Regex(@"(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)|(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)");if (re.IsMatch(tbxIDNumber.Text)){IDNumber = tbxIDNumber.Text;MessageBox.Show($"姓名:{Name},身份证号码:{IDNumber},符合规则");Close();}else{MessageBox.Show($"身份证号码格式不正确,请输入15或者18位的身份证号码。");tbxIDNumber.Focus();}}

正则表达式之身份证号码验证相关推荐

  1. JS正则表达式-附身份证号码验证(简易版)

    文章目录 JS正则表达式 匹配与搜索 一.方括号,圆括号 二.修饰符 三.元字符 四.量词 身份证号码验证(简易版) 身份证号码规则: 1.地址码 2.年份码 3.月份码 4.日期码 5.顺序码 6. ...

  2. 15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  3. 正则表达式身份证号码验证

    正则表达式身份证号码验证 var certificateNum = '430722****10287917'var reg = /^([1-6][1-9]|50)\d{4}(18|19|20)\d{2 ...

  4. MySQL正则表达式判断身份证_15/18位身份证号码验证的正则表达式总结(详细版)...

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

  5. python正则表达式 身份证_15/18位身份证号码验证的正则表达式总结(详细版)

    前言 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 介绍 xxxxxx yyyy MM d ...

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

    身份证号码验证 1.第一代身份证15位: /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$/ 例: if ( ...

  7. 正则实现二代身份证号码验证详解

    Start 开发过程中,常常需要对一些输入信息进行有效性验证,使用正则表达式进行校验是最简单.效率最高的方式了,下面就来看看15/18位身份证号码验证的正则表达式吧. 一: IdCodeValid:f ...

  8. 正则表达式实现身份证信息验证

    一.任务描述   西普工程师想了解正则表达式,为达到更好的对正则更深入的认知,打算利用正则表达式实现身份证信息的验证的实验,结合Python的基础知识实现并填写工作报告. 二.任务目标 1)熟悉Pyt ...

  9. 15/18位身份证号码验证

    15/18位身份证号码验证 在做身份证验证之前你得明确身份证号的组成. 首先我告诉你,18位身份证号码后面的字母只有"X"这一个.(X是罗马数字的10,用X来代替10,可以保证您的 ...

  10. 正则表达式截取身份证号码加密的方法

    下面一段简单的代码给大家介绍正则表达式截取身份证号码加密的方法,具体代码如下所示: 直接上代码: 1 2 3 4 var idCard = '420119188404098978X' ; // 保留前 ...

最新文章

  1. 数组去重的正确编写姿势
  2. sklearn 使用joblib保存模型,并解决cannot import name joblib from sklearn.externals报错
  3. 挖孔屏设计!Moto G8高清渲染图曝光:“奥利奥”摄像头消失
  4. 修改Win7远程桌面端口
  5. Java面向对象基础学习笔记(构造、重载、继承、多态、抽象类、接口、模块)
  6. [转]Python numpy函数hstack() vstack() stack() dstack() vsplit() concatenate()
  7. golang日志收集方案之ELK
  8. 秩和比RSR法算法C语言,论文:应用EXCEL实现秩和比法的计算及其评价-中大网校论文网...
  9. JSONP实现跨域的原理
  10. win8专业版和win8.1专业版安装密钥key及其永久激活工具
  11. leetcode 860.柠檬水找零 Java
  12. cesium.js官网教程之中文版本~~~~第一篇
  13. 国标GB/T28181协议下EasyGBS互联网无插件视频播放器起播慢或延迟高问题解决方案
  14. consul java_集成Consul负载均衡多实例注册_java_天雨流芳-CSDN博客
  15. php正则匹配字符_PHP正则表达式匹配字符的方法汇总
  16. General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8A' for column
  17. 困扰我多年的印度人点头摇头问题
  18. 左右可以滑动半年的超级日历,支持日历部分收起和自动重定向为北京时间
  19. 安工大计算机学院老师,安徽工业大学计算机科学与技术学院导师教师师资介绍简介-张学锋...
  20. java/php/net/python校园课程教学资源共享设计

热门文章

  1. Mysql获取当天用户生日
  2. STM32单片机开发板 定制
  3. 黑苹果完整安装教程,内含后续系统优化
  4. Eclipse下载以及旧版本下载
  5. python-利用python写一个购物小程序
  6. 介绍兴趣爱好的网页html,介绍兴趣爱好的作文5篇
  7. treemap倒叙_lua 模拟Treemap 排序
  8. selenium之qq邮箱登录-发邮件
  9. 网易校招笔试第三题匈牙利算法
  10. ppt怎么加注解文字_ppt怎么添加备注文字?