JAVA获取判断身份证和手机号的工具类
本工具类实现了身份证和手机号的判断,并不是采用京东万象等接口来实现的,可能会有些许不准确,但本人亲测用到现在没有发现有其他的问题,需要注意的是:手机号的判断并不能进行固话的判断,身份证的判断只能判断大陆统一身份证。
该方法非本人原创,是在工作时遇到身份证和手机号的判断,并在网上进行搜索整理出来的工具类,原创是哪位大能已经不知了,因不记得原文地址,所以只能设置原创,望见谅,本人本着学习的心态将本工具类进行学习记录,希望对大家有所帮助!
工具类的写法
代码片
.
// 工具类整个代码
import java.text.ParseException;
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;
import java.util.regex.PatternSyntaxException;
/**
* 作者:MaWeiZe
* 2021/1/14
*/
public class IDCard {
/**
* 功能:身份证的有效验证
*
* @param IDStr
* 身份证号
* @return true 有效:false 无效
* @throws ParseException
*/
public static boolean IDCardValidate(String IDStr) throws ParseException {
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 = "";
// ================ 号码的长度18位 ================
if (IDStr.length() != 18) {
return false;
}
// ================ 数字 除最后以为都为数字 ================
if (IDStr.length() == 18) {
Ai = IDStr.substring(0, 17);
}
if (isNumeric(Ai) == false) {
//errorInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";
return false;
}
// ================ 出生年月是否有效 ================