判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。
15位和18位的身份证号码都是从7位到第12位为身份证为日期类型
package myDemo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IDRegex {
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] + ":" + match