原始问题:
java中正则校验15位或18位身份证号
要使用Java正则表达式校验15位或18位身份证号,可以使用以下代码:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class IDCardValidator {
public static void main(String[] args) {
String idCard1 = "123456789012345";
String idCard2 = "123456789012345678";
System.out.println("身份证号 " + idCard1 + " 是否有效: " + isValidIDCard(idCard1));
System.out.println("身份证号 " + idCard2 + " 是否有效: " + isValidIDCard(idCard2));
}
public static boolean isValidIDCard(String idCard) {
String regex = "^(\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(idCard);
return matcher.matches();
}
}这段代码首先定义了一个名为isValidIDCard的方法,该方法接受一个字符串参数idCard,并使用正则表达式^(\\d{15}$|^\\d{18}$|^\\d{17}(\\d|X|x))$来匹配15位、18位或17位加一位数字或大写字母的身份证号。如果匹配成功,返回true,否则返回false。
Prev:java中验证身份证号的正则表达