身份證號碼校驗

2021-10-11 07:44:37 字數 1665 閱讀 1099

中國居民身份證號碼編碼規則

中國居民身份證校驗碼演算法

都包含/**

* @author liuwei

* @date 2020/11/19

* 身份證校驗工具

*/public class idnumutil

// 定義判別使用者身份證號的正規表示式(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]\\d\\d((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\\d$)";

//假設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;

}

Oracle 身份證號碼校驗

今天來了身份證校驗的需求,想在oracle中校驗後將錯誤資料查詢出來。於是我在網上查到了身份證校驗的oracle函式。但是發現一些正確的身份證號也未校驗通過!後來經過千辛萬苦的努力終於發現了,網上給的函式中判斷是否是閏年的 substrb 函式應該從第7為開始擷取,而不是第6位!還有要注意最後一位校...

JS校驗身份證號碼

function isidcardno num d 0 9 x test num 驗證前2位,城市符合 var acity if acity parseint num.substr 0,2 null alert 城市 acity parseint num.substr 0,2 下面分別分析出生日期和...

身份證號碼

每乙個人自出生後都會有乙個身份證號碼。根據我國有關部門規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。排列順序從左至右依次為 六位數字位址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。居民身份證是國家法定的證明公民個人身份的有效證件。例如 對於身份證號碼330719...