-
如果要单独验证长度,只需使用测试字符串的长度即可。
如果是 18 位 ID,最后一位可能是 x,所以不能说是 d。
我以为我写了验证身份证**,大家可以看看。
这是我之前用 pys60 编写的经过验证的 18 位 ID。
# -*coding:utf-8 -*
xishu=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
def id_proper():
id=""+"请输入您的身份证号码".decode("utf-8"),"text")
while(len(id)!=18):
+"请输入您的 18 位身份证号码".decode("utf-8"))
id=""+"请输入您的身份证号码".decode("utf-8"),"text")
a=str(id)
last=a[17].upper()
s=0for ii in range(17):
s=s+xishu[ii]*int(a[ii])
mod=s%11
if(mod==0):
lilun='1'
elif(mod==1):
lilun='0'
elif(mod==2):
lilun='x'
elif(mod==3):
lilun='9'
elif(mod==4):
lilun='8'
elif(mod==5):
lilun='7'
elif(mod==6):
lilun='6'
elif(mod==7):
lilun='5'
elif(mod==8):
lilun='4'
elif(mod==9):
lilun='3'
else:lilun='2'
if(lilun==last):
+"您的身份证是真实的".decode("utf-8"))
+"你的身份证是假的".decode("utf-8"))
def quit():
+"程序已退出".decode("utf-8"))
u""+"身份验证".decode("utf-8")
(u""+"身份验证".decode("utf-8"),id_proper), u""+"退出程序".decode("utf-8"),quit)]
>>'(?ab).*d)',s)非贪婪模式,先在左边找到ab,然后开始0个字符,检查右边是否有d,如果不满足就反向获取一个字符,直到右边的字符d满足为止; >>>More
e 's/:\+s\+/:/' -e 's/ /_/g'
第一次放置每一行"n 连续 : 和 m 后面的空格"替换为 :将此行中剩余的相似匹配项替换为 其中 n >= 1, m>=1 >>>More