校验身份证号码
来源:互联网 发布:有淘宝账号怎么贷款 编辑:程序博客网 时间:2024/05/16 15:19
校验身份证是否正确,必须是二代身份证,身份证号是18位
/** * 验证18位身份编码是否合法 * * @param idCard 身份编码 * @return 是否合法 */ public static boolean validateIdCard18(String idCard) { boolean bTrue = false; if (idCard.length() == 18) { // 前17位 String code17 = idCard.substring(0, 17); // 第18位 String code18 = idCard.substring(17, 18); if (isNum(code17)) { char[] cArr = code17.toCharArray(); if (cArr != null) { int[] iCard = converCharToInt(cArr); int iSum17 = getPowerSum(iCard); // 获取校验位 String val = getCheckCode18(iSum17); if (val.length() > 0) { if (val.equalsIgnoreCase(code18)) { bTrue = true; } } } } } return bTrue; }
/** * 数字验证 * @param val * @return 提取的数字。 */ public static boolean isNum(String val) { return val == null || "".equals(val) ? false : val.matches("^[0-9]*$"); }
/** * 将字符数组转换成数字数组 * @param ca 字符数组 * @return 数字数组 */ public static int[] converCharToInt(char[] ca) { int len = ca.length; int[] iArr = new int[len]; try { for (int i = 0; i < len; i++) { iArr[i] = Integer.parseInt(String.valueOf(ca[i])); } } catch (NumberFormatException e) { e.printStackTrace(); } return iArr; }
/** * 将身份证的每位和对应位的加权因子相乘之后,再得到和值 * @param iArr * @return 身份证编码。 */ public static int getPowerSum(int[] iArr) { int iSum = 0; if (power.length == iArr.length) { for (int i = 0; i < iArr.length; i++) { for (int j = 0; j < power.length; j++) { if (i == j) { iSum = iSum + iArr[i] * power[j]; } } } } return iSum; }
/** * 将power和值与11取模获得余数进行校验码判断 * * @param iSum * @return 校验位 */ public static String getCheckCode18(int iSum) { String sCode = ""; switch (iSum % 11) { case 10: sCode = "2"; break; case 9: sCode = "3"; break; case 8: sCode = "4"; break; case 7: sCode = "5"; break; case 6: sCode = "6"; break; case 5: sCode = "7"; break; case 4: sCode = "8"; break; case 3: sCode = "9"; break; case 2: sCode = "x"; break; case 1: sCode = "0"; break; case 0: sCode = "1"; break; } return sCode; }
0 0
- 身份证号码校验
- 身份证号码校验
- 身份证号码校验
- 身份证号码校验
- 身份证号码校验
- 身份证号码校验
- 校验身份证号码
- 身份证号码校验 java校验
- php身份证号码校验算法
- js 身份证号码校验实现
- PB身份证号码正确性校验
- JS校验身份证号码
- 身份证号码校验规则
- Oracle 身份证号码校验
- js校验身份证号码合法性
- JS校验身份证号码
- java校验身份证号码
- Js正则校验身份证号码
- Git 版本控制与工作流
- jstl+js+jsp 实现最简单的分页(附插件)
- ubuntu系统安装anaconda3或者miniconda3运行指令,提示sudo:conda: command not found解决办法
- 管理系统中的简单分区和文件系统
- 浏览器加载解析渲染
- 校验身份证号码
- 禁止cookie,session还能继续作用
- 字节,字符及占用内存大小情况
- 基于STM32的rosserial_client的节点开发
- 创建淘宝网店
- matplotlib 字体改为 Times New Roman
- poj 1189 钉子和小球
- Android ListView 按字母排序要求每个拼音内部子类按字母在上,汉字在下再排序
- Linux(Centos 7)安装JDK并配置环境变量