導航:首頁 > 編程語言 > 身份證號碼正則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相關的資料

熱點內容
伺服器當家用機用有什麼影響 瀏覽:507
最短路徑演算法選取最短邊 瀏覽:514
虛擬主機管理系統源碼 瀏覽:970
寒寶解壓玩具視頻 瀏覽:175
海南dns伺服器地址電信雲空間 瀏覽:51
汽車空調用渦旋壓縮機 瀏覽:264
如何抓取app前端數據 瀏覽:720
javachar中文 瀏覽:728
java集合的區別 瀏覽:634
鑽孔加密英文 瀏覽:684
phpcurl使用方法 瀏覽:728
m1下app如何讓軟體橫屏 瀏覽:26
浙江加密軟體報價 瀏覽:153
構造柱插筋部位需要加密嗎 瀏覽:843
kafka源碼分享 瀏覽:451
解壓游戲怎麼廣告和內容不一樣 瀏覽:933
好用的通達信源碼公式 瀏覽:862
程序員撩妹完整版 瀏覽:80
怎麼看忍3的伺服器 瀏覽:329
python動態篩選 瀏覽:690