import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { //18位身份证号码验证 private static final String ID_VER_EIGHTEEN = "^[1-9]\\d{5}(18|19|([23]\\d))\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{3}[0-9Xx]$"; //15位身份证号码验证 private static final String ID_VER_FIVETEEN = "^[1-9]\\d{5}\\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d{2}$"; public static void main(String[] args) { Scanner sc = new Scanner(System.in); String IdCode; do { System.out.println("请输入您的身份证号码"); IdCode = sc.next(); } while (IdCode.length() != 15 && IdCode.length() != 18 && !isIdRight(ID_VER_FIVETEEN,IdCode) && !isIdRight(ID_VER_EIGHTEEN,IdCode)); System.out.println("您的身份证号码为:" + IdCode); String genderIndex = IdCode.substring(17); int genderNum = Integer.parseInt(genderIndex); if (genderNum % 2 == 0) { System.out.println("性别:女"); } else { System.out.println("性别:男"); } String birthday = IdCode.substring(6, 14); System.out.println("生日:" + birthday); } /** * 检验身份证是否合法 * * @param v1 检查正则表达式 * @param v2 身份证号码 * @return 是否合法 */ private static boolean isIdRight(String v1, String v2) { Pattern pattern = Pattern.compile(v1); Matcher isNum = pattern.matcher(v2); return isNum.matches(); } }
Java 身份证验证例子
最新推荐文章于 2024-08-07 09:23:01 发布