package com.imut.day13;
/**
* @author djs
* @create 2022-12-08 15:28
*/
public class Test10 {
public static void main(String[] args) {
/**
* 身份证号的严格校验
*
* 如身份证号:
* 410801 1998 02 10 457x
* 前6位:省份,市区,派出所信息 。注意:第一位不能是0,后5位任意。 [1-9]\\d{5}
* 年的前半段 这里只算到1800-2099年 18,19,20 (18|19|20)
* 年的后半段 任意数字出现两次 \\d{2}
* 月份 01~09 10 11 12 (0[1-9]|1[0-2])
* 日期: 01~09 10~19 20~29 30 31 (最好2月份没有29) (0[1-9]|[12]\\d|3[01])
* 后面4位 任意数字出现3次 最后一位可能是数字,也可能是x或X
* \\d{3}[\\dXx]
*
*
*/
String rex = "[1-9]\\d{5}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])\\d{3}[\\dXx]";
String code = "14181320981213301X";
boolean matches = code.matches(rex);
System.out.println("matches = " + matches);
}
}
正则表达式- 身份证号
最新推荐文章于 2023-09-10 17:52:09 发布