概述
public class IDCardUtil {
public static boolean isValidIdCard(String idCard) {
if (idCard == null) {
return false;
}
Pattern p = Pattern.compile("(\d{17}[0-9a-zA-Z]|\d{14}[0-9a-zA-Z])");
return p.matcher(idCard).matches();
}
public static String getBirthday(String idCard) {
if (idCard == null) {
return null;
}
Pattern p1 = Pattern.compile("\d{6}(\d{8}).*"); // 用于提取出生日字符串
Pattern p2 = Pattern.compile("(\d{4})(\d{2})(\d{2})");// 用于将生日字符串进行分解为年月日
Matcher matcher = p1.matcher(idCard);
if (matcher.find()) {
String birthday = matcher.group(1);
Matcher matcher2 = p2.matcher(birthday);
if (matcher2.find()) {
StringBuilder sb = new StringBuilder();
sb.append(matcher2.group(1));
sb.append('-');
sb.append(matcher2.group(2));
sb.append('-');
sb.append(matcher2.group(3));
return sb.toString();
}
}
return null;
}
}
转载于:https://www.cnblogs.com/bwlcool/p/8575363.html
最后
以上就是复杂人生为你收集整理的正则表达式判断身份证和提取生日的全部内容,希望文章能够帮你解决正则表达式判断身份证和提取生日所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复