验证身份证号 格式问题
导入的时候 验证身份证号的格式问题
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; }
验证身份证号 格式问题相关推荐
- 使用js验证身份证号格式以及身份证号中的生日验证
由于不管是测试项目练手还是实际项目开发,都应该考虑数据的严密性和软件的通俗易懂的实用性,下面是我用js实现的验证身份证号格式以及身份证号中的生日验证代码 //生日移出点击事件验证身份证号中的生日验证 ...
- java验证身份证号格式
//15位到18位的身份证号 public static boolean checkIdCard(String idCard) { String regex = "^[1-9]\\d{7}( ...
- 完美通行证身份证号格式_使用通行证js进行节点js身份验证
完美通行证身份证号格式 In this article, I will share my knowledge of authenticating node.js server using passpo ...
- JS 身份证号格式验证
var idcard = data.field.idcard; if(!/(^\d{15}$)|(^\d{17}(x|X|\d)$)/.test(idcard)){ //验证身份证号15位或18位la ...
- 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 ...
- JS(JavaScript)验证身份证号码格式的合法性
一.JS(JavaScript)验证身份证号码格式的合法性,前端工程师会用到JavaScript验证身份证号码是否合法,这里分享一段本人多年以前多写的JavaScript验证输入身份证号码合法性的代码 ...
- 【SQLServer】验证身份证号第18位校验码是否合法
目录 1.业务场景 2.知识前提 3.实现方案 4.测试 5.参考链接 1.业务场景 参考国家标准GB 11643-1999,居民身份证号组成:6位数字地址码+8位数字出生日期码+3位数字顺序码+1位 ...
- EXCEL规范数据输入教程-验证身份证号
EXCEL日常工作中经常会输入身份证号码,一不小心就可能出错,今天大飞老师就分享这样一个示例EXCEL规范数据输入教程-验证身份证号. 我们首先要保证在EXCEL中能正确输入身份证号码(PS:身份证号 ...
- 如何用正则表达式验证身份证号
身份证号组成: ·17位数字 + 1位校验码 ·地址码:前六位 ·出生日期码:第七位至第十位 ·顺序码:第十五位至十七位(对同年同月同日生的人便定的顺序号,顺序号奇数为男生,偶数为女生) ·检验码:第 ...
最新文章
- AIX下两个常用命令
- BPW34F红外光电传感器
- Xamarin ios C#苹果应用开发第二讲配置环境和编写代码
- H5 history.pushState 在微信内修改url后点击用safari打开/复制链接是修改之前的页面...
- python怎样实现界面的切换_python tkinter实现界面切换的示例代码
- [USACO09OCT]热浪Heat Wave
- mysql workbench 1064_mysql - MySQL Workbench中的正向工程输出错误1064 - 堆栈内存溢出
- java+selenium实现web多系统登录
- java的一些课程设计题目_Java课程设计
- 简单好用的开源会议室预约系统
- VScode开发51单片机程序
- 基数排序-LSD-golang
- Android 内外边距
- JS邮箱验证_手机号码验证_电话号码验证-正则验证
- div和span的标签属性及说明
- Revit二次开发之双事件:空闲事件与DocumentChanged事件
- 层次分析法2:Matlab实现层次分析法的代码详解
- MDD 建模驱动设计
- python图书馆管理系统设计,千行代码带你学!
- 商业智能BI系统助力物流行业向智慧物流过渡