读书人

正则表达式判断身份证跟提取生日

发布时间: 2013-07-01 12:33:04 作者: rapoo

正则表达式判断身份证和提取生日

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;}}



读书人网 >移动开发

热点推荐