导航:首页 > 编程语言 > 身份证号码正则java

身份证号码正则java

发布时间:2024-10-23 07:15:01

java代码怎么校验身份证号码含有非法字符

如果只要判断有非法的字符(除0-9和Xx外)可用正则表达式publicstaticvoidmain(String[]args){//="2142213weqrwe32";StringregEx="[^0-9Xx]";Patternpat=Pattern.compile(regEx);Matchermat=pat.matcher(s);booleanrs=mat.find();if(rs){System.out.print("有非法字符");}另外,校验身份证号码有专门程序的,可直接校验身份证号是否正确,在自己在网上找下

㈡ Java正则表达式实用代码-验证身份证

本文以孙卫琴姐姐的系列Java经典书籍为参考,对Java正则表达式用于验证身份证号码的实用代码进行介绍。

对于第一代身份证的15位验证,正则表达式如下:

编码规则从左到右依次为6位地区代码,6位出生年份后两位及日期,3位顺序码。

正则表达式为:[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3},其中前六位地区代码非0开头,后两位是年份,接着是月份和日期,最后是顺序码。

对于第二代身份证的18位验证,正则表达式如下:

编码规则从左到右依次为6位地区代码,8位年份及日期,3位顺序码,1位校验码(可为x)。

正则表达式为:[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx],其中前六位地区代码非0开头,年份和日期遵循特定格式,顺序码后接一位可为x的校验码。

以下为验证身份证号码有效性的示例代码。

执行上述示例代码,得到的打印结果如下。

㈢ 在java后台,用正则表达式验证身份证

这个是正则表达式,给你段代码,你自己琢磨吧!

//正则表达式 校验是否存在非法字符
private String checkPattern(String str){
String len;
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
len=m.replaceAll("").trim();
return len;
}

㈣ java用正则表达式判断一个18位身份证号是否有效

很显然 是你得正则表达式不对啊,正确的18位身份证验证正则为:

Stringregex="^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";		

而且就算正则表达式正确了,你的逻辑判断代码也是有问题,

publicclassHomework{
publicstaticvoidmain(String[]args){
Stringregex="^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$";
System.out.println("请输入18位的身份证号码:");
Scannerscanner=newScanner(System.in);
Strings=scanner.nextLine();
if(s.matches(regex)){
inty1,y2;
Stringyear1=s.substring(6,8);
y1=Integer.parseInt(year1);
Stringyear2=s.substring(8,10);
y2=Integer.parseInt(year2);
if((y1==18&&y2>=87&&y2<=89)
||(y1==19&&y2>=0&&y2<=99)
||(y1==20&&y2<=17)){
intm,d;
Stringmonth=s.substring(10,12);
m=Integer.parseInt(month);
Stringday=s.substring(12,14);
d=Integer.parseInt(day);
if((m==1||m==3||m==5||m==7||m==8||m==10||m==12)
&&(d==31))
System.out.println("有效");
elseif((m==4||m==6||m==9||m==11)&&(d==30))
System.out.println("有效");
elseif(m==2){
inty;
Stringyear=s.substring(6,10);
y=Integer.parseInt(year);
if(((y%4==0&&y%100!=0)||y%400==0)
&&(d==29))
System.out.println("有效");
elseif(((y%4!=0&&y%100==0)||y%400!=0)
&&(d==28))
System.out.println("有效");
else
System.out.println("无效");
return;
}else{
System.out.println("无效");
return;
}
intss;
Stringsex=s.substring(16,17);
ss=Integer.parseInt(sex);
if(ss%2==0)
System.out.println("女性");
else
System.out.println("男性");
}else
System.out.println("无效");
}else
System.out.println("无效");
}
}

㈤ Java-18位身份证号的正则表达式。帮忙拆一下代码。

^ 匹配字符串的开始
[1-9] 第1位:1-9
\d{5} 第2-6位:0-9
[1-9] 第7位:1-9
\d{3} 第8-10位:0-9
((0\d)|(1[0-2])):
第11-12位:(00-09)或(10-12)
(([0|1|2]\d)|3[0-1])
第13-14位:(00-29)或(30-31)
\d{3} 第15-17位:0-9
([0-9]|X)
第18位:0-9或X
$ 匹配字符串的结束

㈥ 你好看见你懂正则表达式。想请教,身份证号码15位 18位数字 表达式。还有韩国身份证号码是 123456-*******

1. 身份证号码15位 18位数字 /\d{15}|\d{17}(\d|x)/i
2. 韩国身份证号码 /\d{6}\-\d{7} /

阅读全文

与身份证号码正则java相关的资料

热点内容
苹果手机如何设置服务器 浏览:932
迅雷下载游戏需要解压 浏览:851
3d平滑命令 浏览:39
必须去车管所解压 浏览:385
室友命令我 浏览:308
lol全部命令 浏览:38
用什么APP查指数 浏览:919
什么是作品源码 浏览:669
我的理想程序员该怎么写 浏览:840
英译中国现代散文选pdf 浏览:446
装饰设计模式java 浏览:21
linuxshell清屏命令 浏览:134
惠利app是什么 浏览:779
游戏端口读取服务器失败怎么弄 浏览:878
linux修复mbr 浏览:128
磁盘格式化基本命令 浏览:578
程序员掉入异世界 浏览:954
andlua画质助手源码 浏览:577
winrar解压格式怎么看 浏览:147
qt编程入门pdf 浏览:599