import com.google.common.base.Strings;
public class IdCardValidator {
public static boolean isValid(String idNo) {
if(Strings.isNullOrEmpty(idNo)){
return false;
}
if(idNo.trim().length()==15){//15位身份证
return CommonValidator.isNumeric(idNo);
}
if(idNo.trim().length()!=18){//不是18位
return false;
}
String[] valCodeArr = { "1", "0", "x", "9", "8", "7", "6", "5", "4","3", "2" };
String[] wi = { "7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7","9", "10", "5", "8", "4", "2" };
String ai = idNo.substring(0,idNo.length()-1);
int totalmulAiWi = 0;
for (int i = 0; i < 17; i++) {
totalmulAiWi = totalmulAiWi + Integer.parseInt(String.valueOf(ai.charAt(i))) * Integer.parseInt(wi[i]);
}
int modValue = totalmulAiWi % 11;
String strVerifyCode = valCodeArr[modValue];
ai = ai + strVerifyCode;
if (idNo.length() == 18) {
if (ai.equalsIgnoreCase(idNo) == false) {
return false;
}
} else {
return true;
}
return true;
}
}
验证身份证号码
最新推荐文章于 2022-11-04 18:08:34 发布