python实现身份证号码有效性验证
本帖最后由 戴宇轩 于 2015-6-27 13:30 编辑**** Hidden Message *****)#//测试出生日期的合法性
else:
ereg=re.compile('{5}{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2)){3})#//测试出生日期的合法性
if(re.match(ereg,idcard)):
print Errors
else:
print Errors
#18位身份号码检测
elif(len(idcard)==18):
#出生日期的合法性检查
#闰年月日:((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|))
#平年月日:((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2))
if(int(idcard) % 4 == 0 or (int(idcard) % 100 == 0 andint(idcard)%4 == 0 )):
ereg=re.compile('{5}19{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|)){3})#//闰年出生日期的合法性正则表达式
else:
ereg=re.compile('{5}19{2}((01|03|05|07|08|10|12)(0||3)|(04|06|09|11)(0||30)|02(0|1|2)){3})#//平年出生日期的合法性正则表达式
#//测试出生日期的合法性
if(re.match(ereg,idcard)):
#//计算校验位
S = (int(idcard_list) + int(idcard_list)) * 7 +(int(idcard_list) + int(idcard_list)) * 9 +(int(idcard_list) + int(idcard_list)) * 10 +(int(idcard_list) + int(idcard_list)) * 5 +(int(idcard_list) + int(idcard_list)) * 8 +(int(idcard_list) + int(idcard_list)) * 4 +(int(idcard_list) + int(idcard_list)) * 2 +int(idcard_list) * 1 + int(idcard_list) * 6 +int(idcard_list) * 3
Y = S % 11
M = "F"
JYM = "10X98765432"
M = JYM#判断校验位
if(M == idcard_list):#检测ID的校验位
print Errors
else:
print Errors
else:
print Errors
else:
print Errors 好好学下 啊 学习学习哈哈哈 来学习下!!! tks so much. 这是什么呢 什么好东西,来看一下。 什么好东西,来看一下。 支持一下 虽然还没学到python 看一下,这个有必要看看 呵呵 不错 怎么实现的? 这个也可以做到,,太牛了 正则表达式??? 感谢楼主分享!,,,,,,,,, 学习学习哈哈哈 看看学习学习 真的假的真的的假的 是自己搞出来的么?