1.身份证最后的X应该是大写的,我在这个工具类中没有将小写转化为转化为大写,有需要这一点的需要自己转化。
2.String[] wf = { “1”, “0”, “X”, “9”, “8”, “7”, “6”, “5”, “4”, “3”, “2” }; 顺序不能变!
package com.hikvision.ctm05jotp.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Hashtable;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author : youxiaowei
* @date : 2019/7/29 11:09
*/
public class IdCardUtil {
/**
*身份证验证
* @param idStr
* @return 校验信息,correct为成功,失败会返回对应的失败原因
*/
public static String IdentityCardVerification(String idStr){
String[] wf = { "1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2" };
String[] checkCode = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2" };
String iDCardNo = "";
try {
//判断号码的长度 15位或18位
if (idStr.length() != 15 && idStr.length() != 18) {
return "身份证号码长度应该为15位或18位";
}
if (idStr.length