guailai看看
来看看
kankanshishayo~~~
这个怎么实现呢?
小甲鱼
学习了
想看
see
应该是正则匹配吧
学习学习
过来学习楼主的分享
学习学习
学习下~~
一定要看一下
看了这段代码我稍微改了一下,python3能用
import time
def checkIdcard(idcard):
errors=['验证通过!','身份证号码位数不对!','身份证号码出生日期超出范围或含有非法字符!','身份证号码校验错误!','身份证地区非法!']
area={"11":"北京","12":"天津","13":"河北","14":"山西","15":"内蒙古","21":"辽宁","22":"吉林","23":"黑龙江","31":"上海","32":"江苏","33":"浙江","34":"安徽","35":"福建","36":"江西","37":"山东","41":"河南","42":"湖北","43":"湖南","44":"广东","45":"广西","46":"海南","50":"重庆","51":"四川","52":"贵州","53":"云南","54":"西藏","61":"陕西","62":"甘肃","63":"青海","64":"宁夏","65":"新疆","71":"台湾","81":"香港","82":"澳门","91":"国外"}
idcard = str(idcard.strip())
if idcard not in area:
return errors
if len(idcard) not in (15,18):
return errors
if (len(idcard)==15 and idcard.isdigit()==False) or (len(idcard)==18 and idcard.isdigit()==False):
return errors
if len(idcard)==15 and idcard.isdigit():
birth = '19'+idcard
if len(idcard)==18 and idcard.isdigit():
birth = idcard
try:
checkBirth = time.strptime(birth,'%Y%m%d')
if len(idcard)==15:
return errors
else:
S = (int(idcard) + int(idcard)) * 7 +(int(idcard) + int(idcard)) * 9 +(int(idcard) + int(idcard)) * 10 +(int(idcard) + int(idcard)) * 5 +(int(idcard) + int(idcard)) * 8 +(int(idcard) + int(idcard)) * 4 +(int(idcard) + int(idcard)) * 2 +int(idcard) * 1 + int(idcard) * 6 +int(idcard) * 3
Y = S % 11
JYM = "10X98765432"
M = JYM
if M == idcard:
return errors
else:
return errors
except ValueError:
return errors
id = input('请输入身份证:')
print(checkIdcard(id))
这个真的可以好好学一下哎
好利害。。。
看看LZ是如何实现的,多谢了!
学习一下
看一下