身份證的校驗

2021-09-28 01:52:07 字數 1491 閱讀 2369

初步判斷**

增加校驗碼判斷

了解編碼規則

如何完成身份證的校驗

/ ^ [1-9]\d(18|19|20)\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d[0-9xx]$/;

身份證號碼的正規表示式

前6位地區編碼(dddddd)

數字開頭不能為0 取1-9數字。後五位可以為0-9的數字。

正規表示式:/^ [ 1-9 ] \d/

出生年月日(yymmdd)

順序編碼(xxp)

順序碼總共為3位,p代表性別,奇數為男、偶數為女。

正規表示式 :/\d/

校驗碼(y)

校驗碼,該位數值可通過前17位計算獲得

數值為0-9或者x x

正規表示式:/[0-9xx]/

校驗碼規則:

例項:

某男性的身份證號碼為【53010219200508011x】, 我們看看這個身份證是不是合法的身份證。

初步判斷**

public

void

judge

(string idnumber)

(18|19|20)\\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d[0-9xx]$"

;boolean ismatch= pattern.

matches

(regidnumber,idnumber);if

(ismatch)

else

}

增加校驗碼判斷
public

void

judge

(string idnumber)

(18|19|20)\\d((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\\d[0-9xx]$"

;boolean ismatch= pattern.

matches

(regidnumber,idnumber)

;int sum=0;

//如果初步判斷成功進入校驗碼判斷

if(ismatch)

;int i=0;

for(i=

0;i<

17;i++

) i=sum%11;

if(i==2)

else

if(integer.

parseint

(string.

valueof

(idnumber.

charat

(i))

)==idno[i]

)else

}else

}

身份證校驗

int isright string card cout 9 wi sum 11 if p 17 x p 17 x 最後一位為 x 或 x else if id wi p 17 判斷計算出的身份證校驗碼與輸入是否相符 return error 判斷身份證號碼中的年月日是否正確 bool birthd...

身份證校驗

const regexutils else 手機號碼格式驗證 checkmobile mobile string boolean return regex.test mobile.trim else 郵箱格式驗證 checkemail email string boolean result rege...

身份證的校驗

身份證的校驗,js 函式 var idcardverify function else if idcard.length 18 else else 判斷身份證號碼為18位時最後的驗證位是否正確 param a idcard 身份證號碼陣列 return function istruevalidate...