利用正则表达式判断身份证号
来源:互联网 发布:打击垫软件下载 编辑:程序博客网 时间:2024/05/15 00:02
package com.alex.RegExp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class IDnumDistinguish {
//判断身份证:要么是15位,要么是18位,最后一位可以为字母,并写程序提出其中的年月日。
public static void main(String[] args) {
while(true){
//提示用户输入身份证号
System.out.println("请输入身份证号码:");
//通过流处理获得用户身份证号
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
String idNum=null;
try {
idNum= consoleReader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
//定义判别用户身份证号的正则表达式(要么是15位,要么是18位,最后一位可以为字母)
Pattern idNumPattern = Pattern.compile("(\\d{14}[0-9a-zA-Z])|(\\d{17}[0-9a-zA-Z])");
//通过Pattern获得Matcher
Matcher idNumMatcher = idNumPattern.matcher(idNum);
//判断用户输入是否为身份证号
if(idNumMatcher.matches()){
System.out.println("您的出生年月日是:");
//如果是,定义正则表达式提取出身份证中的出生日期
Pattern birthDatePattern= Pattern.compile("\\d{6}(\\d{4})(\\d{2})(\\d{2}).*");//身份证上的前6位以及出生年月日
//通过Pattern获得Matcher
Matcher birthDateMather= birthDatePattern.matcher(idNum);
//通过Matcher获得用户的出生年月日
if(birthDateMather.find()){
String year = birthDateMather.group(1);
String month = birthDateMather.group(2);
String date = birthDateMather.group(3);
//输出用户的出生年月日
System.out.println(year+"年"+month+"月"+date+"日");
}
}else{
//如果不是,输出信息提示用户
System.out.println("您输入的并不是身份证号");
}
}
}
}
- 利用正则表达式判断身份证号
- 利用正则表达式判断身份证号
- 利用正则表达式判断身份证号
- 利用正则表达式判断身份证号
- IOS中判断身份证号的正则表达式
- js正则表达式判断身份证号、邮箱和空字符串
- 正则表达式—————判断身份证号
- OC正则表达式判断手机号、身份证号、车牌号等是否正确
- 邮箱,手机号,身份证号等正则表达式的判断
- 身份证号验证正则表达式
- 正则表达式验证身份证号
- 正则表达式校验身份证号
- 身份证号 正则表达式 探究
- 身份证号验证正则表达式
- 身份证号验证正则表达式
- 正则表达式之身份证号验证
- js正则表达式验证身份证号
- js身份证号正则表达式验证
- linux设备驱动——andriod平台wlan驱动
- 什么是装箱和拆箱?怎样操作?
- ucGUI文件说明
- 刚毕业没几年,别去计较太多得失
- Cannot call method 'indexOf' of undefined
- 利用正则表达式判断身份证号
- 微信公众平台消息接口-java-jsp版
- 基于ARM含SD控制器的SD卡的SDIO模式驱动解析
- vc++ 之ADO数据库编程
- Java中23种经典设计模式详解
- 使用Objective-C的文档生成工具:appledoc
- 身份证15位转18位网页
- SDIO 驱动
- openstack linux 虚拟机镜像制作