java 18位和15位身份证号规则校验校验
时间: 2023-08-31 07:06:41 浏览: 124
身份证号码是由18位或15位数字组成的,其中最后一位可能是数字或字母X。下面是Java代码实现身份证号码校验的方法:
1. 验证15位身份证号码:
```
public static boolean isIDCard15(String idCard) {
if (idCard == null || idCard.trim().length() != 15) {
return false;
}
if (!idCard.matches("^\\d{15}$")) {
return false;
}
String provinceCode = idCard.substring(0, 2);
if (!isValidProvinceCode(provinceCode)) {
return false;
}
String birthday = "19" + idCard.substring(6, 12);
return isValidDate(birthday);
}
private static boolean isValidProvinceCode(String provinceCode) {
// 省份代码规则校验
}
private static boolean isValidDate(String date) {
// 日期格式校验
}
```
2. 验证18位身份证号码:
```
public static boolean isIDCard18(String idCard) {
if (idCard == null || idCard.trim().length() != 18) {
return false;
}
if (!idCard.matches("^\\d{17}[\\dXx]$")) {
return false;
}
String provinceCode = idCard.substring(0, 2);
if (!isValidProvinceCode(provinceCode)) {
return false;
}
String birthday = idCard.substring(6, 14);
if (!isValidDate(birthday)) {
return false;
}
if (!isValidVerifyCode(idCard)) {
return false;
}
return true;
}
private static boolean isValidVerifyCode(String idCard) {
// 校验码规则校验
}
```
其中,isValidProvinceCode() 方法用于校验省份代码规则,isValidDate() 方法用于校验日期格式,isValidVerifyCode() 方法用于校验校验码规则,这些方法的具体实现可以根据实际需求进行编写。
阅读全文