导入的时候 验证身份证号的格式问题



         if(!sfzh.equals("")&&isIDNumber(sfzh) == false){returnMap.put("msg","第"+hh+"行,第3列身份证号格式不正确!");return returnMap;   }//验证身份证号是否符合正则表达式//假设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//$结尾public static boolean isIDNumber(String IDNumber) {if (IDNumber == null || "".equals(IDNumber)) {return false;}// 定义判别用户身份证号的正则表达式(15位或者18位,最后一位可以为字母)String regularExpression = "(^[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}$)";boolean matches = IDNumber.matches(regularExpression);//判断第18位校验值if (matches) {if (IDNumber.length() == 18) {try {char[] charArray = IDNumber.toCharArray();//前十七位加权因子int[] idCardWi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};//这是除以11后,可能产生的11位余数对应的验证码String[] idCardY = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};int sum = 0;for (int i = 0; i < idCardWi.length; i++) {int current = Integer.parseInt(String.valueOf(charArray[i]));int count = current * idCardWi[i];sum += count;}char idCardLast = charArray[17];int idCardMod = sum % 11;if (idCardY[idCardMod].toUpperCase().equals(String.valueOf(idCardLast).toUpperCase())) {return true;} else {System.out.println("身份证最后一位:" + String.valueOf(idCardLast).toUpperCase() + "错误,正确的应该是:" + idCardY[idCardMod].toUpperCase());return false;}} catch (Exception e) {e.printStackTrace();System.out.println("异常:" + IDNumber);return false;}}}return matches;        }

验证身份证号 格式问题相关推荐

  1. 使用js验证身份证号格式以及身份证号中的生日验证

    由于不管是测试项目练手还是实际项目开发,都应该考虑数据的严密性和软件的通俗易懂的实用性,下面是我用js实现的验证身份证号格式以及身份证号中的生日验证代码 //生日移出点击事件验证身份证号中的生日验证 ...

  2. java验证身份证号格式

    //15位到18位的身份证号 public static boolean checkIdCard(String idCard) { String regex = "^[1-9]\\d{7}( ...

  3. 完美通行证身份证号格式_使用通行证js进行节点js身份验证

    完美通行证身份证号格式 In this article, I will share my knowledge of authenticating node.js server using passpo ...

  4. JS 身份证号格式验证

    var idcard = data.field.idcard; if(!/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(idcard)){ //验证身份证号15位或18位la ...

  5. js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)...

    js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ...

  6. JS(JavaScript)验证身份证号码格式的合法性

    一.JS(JavaScript)验证身份证号码格式的合法性,前端工程师会用到JavaScript验证身份证号码是否合法,这里分享一段本人多年以前多写的JavaScript验证输入身份证号码合法性的代码 ...

  7. 【SQLServer】验证身份证号第18位校验码是否合法

    目录 1.业务场景 2.知识前提 3.实现方案 4.测试 5.参考链接 1.业务场景 参考国家标准GB 11643-1999,居民身份证号组成:6位数字地址码+8位数字出生日期码+3位数字顺序码+1位 ...

  8. EXCEL规范数据输入教程-验证身份证号

    EXCEL日常工作中经常会输入身份证号码,一不小心就可能出错,今天大飞老师就分享这样一个示例EXCEL规范数据输入教程-验证身份证号. 我们首先要保证在EXCEL中能正确输入身份证号码(PS:身份证号 ...

  9. 如何用正则表达式验证身份证号

    身份证号组成: ·17位数字 + 1位校验码 ·地址码:前六位 ·出生日期码:第七位至第十位 ·顺序码:第十五位至十七位(对同年同月同日生的人便定的顺序号,顺序号奇数为男生,偶数为女生) ·检验码:第 ...

最新文章

  1. AIX下两个常用命令
  2. BPW34F红外光电传感器
  3. Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
  4. H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面...
  5. python怎样实现界面的切换_python tkinter实现界面切换的示例代码
  6. [USACO09OCT]热浪Heat Wave
  7. mysql workbench 1064_mysql - MySQL Workbench中的正向工程输出错误1064 - 堆栈内存溢出
  8. java+selenium实现web多系统登录
  9. java的一些课程设计题目_Java课程设计
  10. 简单好用的开源会议室预约系统
  11. VScode开发51单片机程序
  12. 基数排序-LSD-golang
  13. Android 内外边距
  14. JS邮箱验证_手机号码验证_电话号码验证-正则验证
  15. div和span的标签属性及说明
  16. Revit二次开发之双事件:空闲事件与DocumentChanged事件
  17. 层次分析法2:Matlab实现层次分析法的代码详解
  18. MDD 建模驱动设计
  19. python图书馆管理系统设计,千行代码带你学!
  20. 商业智能BI系统助力物流行业向智慧物流过渡

热门文章

  1. java里面string什么意思_「Java基础知识」Java中的字符串是什么
  2. 7.Shuffle详解
  3. 蓝桥杯——算法训练——进击的青蛙
  4. Ubuntu的Intel网卡驱动安装
  5. Babel常用的插件
  6. JavaEE基础:java常量、变量、数据类型、数据类型转化、运算符-第二个学习日
  7. python中idx是什么意思_使用Python解析MNIST数据集(IDX文件格式)
  8. Domain Shift介绍
  9. webpack源码解析七(optimization)
  10. 基于HTML5之APP微信支付集成实现