身份证号码有效性验证

这是一个Java程序,用于验证15位或18位身份证号码的有效性。程序检查身份证的长度、数字组成、出生日期、地区码和校验码,确保它们符合中国身份证的标准。
摘要由CSDN通过智能技术生成

import java.text.ParseException;  
import java.text.SimpleDateFormat;  
import java.util.Calendar;  
import java.util.GregorianCalendar;  
import java.util.Hashtable;  
import java.util.Scanner;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  
  


/**
 * 身份证号码有效性验证
 */
public class IdCardExpUtil {
/**

* @description:验证主方法,里面会调用所有方法来验证
* @author www.javazs.com lwl
* 2016年5月22日
* @param IDStr
* @return
* @throws ParseException
*/
public static String IDCardValidate(String IDStr) throws ParseException {          
        String tipInfo = "身份证号码正确";// 记录错误信息  
        String Ai = "";  
        // 判断号码的长度 15位或18位  
        if (IDStr.length() != 15 && IDStr.length() != 18) {  
            tipInfo = "身份证号码长度应该为15位或18位。";  
            return tipInfo;  
        }  
          
  
        // 18位身份证前17位位数字,如果是15位的身份证则所有号码都为数字  
        if (IDStr.length() == 18) {  
            Ai = IDStr.substring(0, 17);  
        } else if (IDStr.length() == 15) {  
            Ai = IDStr.substring(0, 6) + "19" + IDStr.substring(6, 15);  
        }  
        if (isNumeric(Ai) == false) {  
            tipInfo = "身份证15位号码都应为数字 ; 18位号码除最后一位外,都应为数字。";  
            return tipInfo;  
        }  
          
  
        // 判断出生年月是否有效   
        String strYear = Ai.substring(6, 10);// 年份  
        String strMonth = Ai.substring(10, 12);// 月份  
        String strDay = Ai.substring(12, 14);// 日
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值