欢迎访问宙启技术站
智能推送

在Java中如何使用正则表达式验证身份证号码格式

发布时间:2023-12-04 06:15:54

在Java中使用正则表达式验证身份证号码格式,可以使用Pattern和Matcher类来实现。下面是一个使用正则表达式验证身份证号码格式的例子:

import java.util.regex.*;

public class IDCardValidation {
    public static boolean validateIDCard(String idCard) {
        String pattern = "^\\d{17}[\\d|x|X]$";
        
        Pattern p = Pattern.compile(pattern);
        Matcher m = p.matcher(idCard);
        
        return m.matches();
    }
    
    public static void main(String[] args) {
        // 身份证号码验证通过的示例
        String validIDCard1 = "31010119900101001X";
        String validIDCard2 = "11010119900101001x";
        
        // 身份证号码验证不通过的示例
        String invalidIDCard1 = "31010119900101001Y";
        String invalidIDCard2 = "31010119900101";
        
        System.out.println(validateIDCard(validIDCard1)); // 输出 true
        System.out.println(validateIDCard(validIDCard2)); // 输出 true
        
        System.out.println(validateIDCard(invalidIDCard1)); // 输出 false
        System.out.println(validateIDCard(invalidIDCard2)); // 输出 false
    }
}

上述代码中的正则表达式^\\d{17}[\\d|x|X]$可以用于验证身份证号码的格式。其中,\\d{17}表示匹配17个数字,[\\d|x|X]表示匹配一个数字或字母"x"或字母"X"(X用于表示校验码),^表示字符串的开始,$表示字符串的结束。

validateIDCard方法中,先创建Pattern对象,然后使用Matcher对象进行匹配。最后返回匹配结果。

在main方法中,通过调用validateIDCard方法验证一些身份证号码,输出结果为true表示验证通过,输出结果为false表示验证不通过。

希望以上信息能够帮助到您使用正则表达式验证身份证号码格式的问题。