身份證號驗證

2021-10-23 18:38:24 字數 1723 閱讀 9433

原文:身份證號驗證

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]\\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;

}

身份證號驗證

身份證號組成 17位數字 1位校驗碼 位址碼 前六位 出生日期碼 第七位至第十位 順序碼 第十五位至十七位 對同年同月同日生的人便定的順序號,順序號奇數為男生,偶數為女生 檢驗碼 第十八位 0 9 x var acity function iscarid sid d x i.test sid ret...

js 身份證號驗證

function iscardid sid var isum 0 var info if d d x i.test sid return 身份證長度或格式錯誤 sid sid.replace x i,a if acity parseint sid.substr 0,2 null return 身份證...

C 身份證號驗證

c 身份證號驗證 由於專案需要,在網上的例子大多數都是c 的,所以新增了這個身份證號的驗證的c 程式 實現身份證生成和校驗 bool cid card no generatedlg idnumberverify cstring stridnumber byte uccoefficient 17 tc...