JAVA 驗證身份證號碼是否合法

2021-08-21 05:13:09 字數 1812 閱讀 2102

public static boolean isidnumber(string idnumber)

// 定義判別使用者身份證號的正規表示式(15位或者18位,最後一位可以為字母)

string regularexpression = 「(^[1-9]\d(18|19|20)\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d[0-9xx])|

」+「(

[1−9

]\d5\d

2((0

[1−9

])|(

10|11|

12))(

([0−

2][1

−9])

|10|20

|30|31

)\d3 )|」

+「([

1−9]

\d5\d2

((0[

1−9]

)|(10

|11|12

))((

[0−2

][1−

9])|

10|20|

30|31)

\d3

)」;

//假設18位身份證號碼:41000119910101123x 410001 19910101 123x

//^開頭

//[1-9] 第一位1-9中的乙個 4

//\d 五位數字 10001(前六位省市縣地區)

//(18|19|20) 19(現階段可能取值範圍18xx-20xx年)

//\d 91(年份)

//((0[1-9])|(10|11|12)) 01(月份)

//(([0-2][1-9])|10|20|30|31)01(日期)

//\d 三位數字 123(第十七位奇數代表男,偶數代表女)

//[0-9xx] 0123456789xx其中的乙個 x(第十八位為校驗值)

//$結尾

//假設15位身份證號碼:410001910101123  410001 910101 123

//^開頭

//[1-9] 第一位1-9中的乙個 4

//\\d 五位數字 10001(前六位省市縣地區)

//\\d 91(年份)

//((0[1-9])|(10|11|12)) 01(月份)

//(([0-2][1-9])|10|20|30|31)01(日期)

//\\d 三位數字 123(第十五位奇數代表男,偶數代表女),15位身份證不含x

//$結尾

boolean matches = idnumber.matches(regularexpression);

//判斷第18位校驗值

if (matches) ;

//這是除以11後,可能產生的11位餘數對應的驗證碼

string idcardy = ;

int sum = 0;

for (int i = 0; i < idcardwi.length; i++)

char idcardlast = chararray[17];

int idcardmod = sum % 11;

if (idcardy[idcardmod].touppercase().equals(string.valueof(idcardlast).touppercase())) else

} catch (exception e) }}

return matches;

}

java驗證身份證號碼

介紹 yyyy mm dd 375 0 十八位 yy mm dd 75 0 十五位 地區 1 9 d 年的前兩位 18 19 23 d 1800 2399 年的後兩位 d 月份 0 1 9 10 11 12 天數 0 2 1 9 10 20 30 31 閏年不能禁止29 三位順序碼 d 兩位順序碼 ...

Java 身份證號碼驗證

之前的身份證號碼只是做了一些簡單的數字 長度,生日等驗證 最近碰到乙個框架的身份證號碼驗證有些奇怪,在網上搜了一通,終於找到了規則,所以在這裡記錄一下,一遍以後再用,也分享給廣大開發者.驗證身份證號碼 param snumber 身份證號碼 public static boolean check s...

身份證號碼驗證

說明 驗證身份證的有效性 引數 cid 身份證號碼 返回 地方 出生時間 性別 private string checkcidinfo string cid if cid.length 18 char c cid cid.length 1 bool last false if c 0 c 9 c a...