我是靠谱客的博主 复杂人生,最近开发中收集的这篇文章主要介绍正则表达式判断身份证和提取生日,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

最后

以上就是复杂人生为你收集整理的正则表达式判断身份证和提取生日的全部内容,希望文章能够帮你解决正则表达式判断身份证和提取生日所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部