驗證身證是否合法,並且取得裏面的生日日期

package cn.javase.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest {

 /**
  * @param args
  */
 public static void main(String[] args) {
  
  // 測試是否爲合法的身份證號碼
  String[] strs = { "130681198712092019", "13068119871209201x",
    "13068119871209201", "123456789012345", "12345678901234x",
    "1234567890123" };
  Pattern p1 = Pattern.compile("(\\d{17}[0-9a-zA-Z]|\\d{14}[0-9a-zA-Z])");
  for (int i = 0; i < strs.length; i++) {
   Matcher matcher = p1.matcher(strs[i]);
   System.out.println(strs[i] + ":" + matcher.matches());
  }

  Pattern p2 = Pattern.compile("\\d{6}(\\d{8}).*"); // 用於提取出生日字符串
  Pattern p3 = Pattern.compile("(\\d{4})(\\d{2})(\\d{2})");// 用於將生日字符串進行分解爲年月日
  for (int i = 0; i < strs.length; i++) {
   Matcher matcher = p2.matcher(strs[i]);
   boolean b = matcher.find();
   if (b) {
    String s = matcher.group(1);
    Matcher matcher2 = p3.matcher(s);
    if (matcher2.find()) {
     System.out
       .println("生日爲" + matcher2.group(1) + "年"
         + matcher2.group(2) + "月"
         + matcher2.group(3) + "日");
    }
   }

  }

 }

}

發佈了39 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章