-
如果要單獨驗證長度,只需使用測試字串的長度即可。
如果是 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