中國居民身份證號碼編碼規則中國居民身份證校驗碼演算法
都包含/**
* @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...