source: http://zh.wikipedia.org/wiki/中华人民共和国公民身份号码
#!/usr/bin/python import re; #定义验证函数def IC_chk(ic_serial): #权重数组 iW = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1];#身份证号码中可能的字符 values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'x']#使用正则表达式检测 icre = re.compile('^[1-9][0-9]{16}[x0-9]$', re.IGNORECASE); m = icre.match(ic_serial);if m:pass; else:#不是合法的身份证号码,直接退出 return False; S = 0;for i in range(0,17): S += int(ic[i]) * iW[i]; chk_val = (12 - (S % 11)) % 11; return ic_serial[17].lower() == values[chk_val]; #测试验证函数ic = raw_input("Please input IC serial: ");if IC_chk(ic):print "Correct IC Serial!";else:print "Wrong IC Serial!";
时间: 2024-09-21 02:29:17