/**
* ^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$
正则表达式没有校验月份和日期的真实性(比如2月不会有30或31日),也没有校验身份证号码的校验位是否正确
* @param id 身份证号
* @return 生日(yyyy-MM-dd)
*/
public String extractYearMonthDayOfIdCard(String id) {
String year = null;
String month = null;
String day = null;
//正则匹配身份证号是否是正确的,15位或者17位数字+数字/x/X
if (id.matches("^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$
")) {
year = id.substring(6, 10);
month = id.substring(10,12);
day = id.substring(12,14);
}else {
System.out.println("身份证号码不匹配!");
return null;
}
return year + "-" + month + "-" + day;
}
通过身份证号获取出生的年月日
最新推荐文章于 2024-11-18 07:36:39 发布