def readidfile():#此函式用於將身份證的前17位和第18位校驗位區分開fp = open("e:\\04.automationproject\\practicepython\\idverify.txt")
idlines = fp.readlines()
id17col =
id18col =
for id in idlines:
return zip(id17col,id18col)
def getcheckout(idm):#idm表示id的前17位,此函式用於計算身份證的第18位校驗位
'''獲得校驗碼演算法'''
weight=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2] #十七位數字本體碼權重
validate=['1','0','x','9','8','7','6','5','4','3','2'] #mod11,對應校驗碼字元值
sum=0
mode=0
for i in range(0,len(idm)):
sum = sum + int(idm[i])*weight[i]
mode=sum%11
return validate[mode]
if __name__ == '__main__':
for id,verify in readidfile():
ver = getcheckout(id)
# print(id,verify)
if ver == verify:
print("身份證合法")
else:
print("身份證合法校驗失敗")
研究身份證驗證碼
終於讓我給整明白了 身份證號最後一位的演算法了 汗啊 第一位 7 第二位 9 第三位 10 第四位 5 第五位 8 第六位 4 第七位 2 第八位 1 第九位 6 第十位 3 第十一位 7 第十二位 9 第十三位 10 第十四位 5 第十五位 8 第十六位 4 第十七位 2 12 如果得數是10 最...
身份證驗證
1 簡單的正規表示式 1 preg match d d dx id card 2 preg match d 18 19 20 d 01 d 0123 d d d x id card 3 preg match d d d x x id card 2 複雜並且嚴格一些的驗證 這個可以驗證15位和18位的...
身份證驗證
身份證分為兩類 1 全是數字 15位或者18位。2 大寫x 18位,最後一位字母x,其餘必需是數字。正則 d d d d x 身份驗證例項 header content type text html charset utf 8 idc post idc bm substr idc,0,6 gende...