原文:身份證號驗證
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...