python身份证校验
时间: 2023-06-03 12:02:59 浏览: 325
可以使用Python内置的re模块进行身份证号码的正则匹配和校验。下面是一个简单的示例代码:
```python
import re
# 身份证号码校验函数
def check_id_card(id_card):
pattern = re.compile(r'^\d{17}[\dXx]$')
if not pattern.match(id_card):
return False
wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]
ai = [int(id_card[i]) for i in range(17)]
sum_val = sum([wi[i] * ai[i] for i in range(17)])
check_code = '10X98765432'[sum_val % 11]
return check_code == id_card[-1] or check_code == 'x' and id_card[-1] == 'X'
# 测试身份证号码校验函数
print(check_id_card('310101199901012345'))
print(check_id_card('31010119990101234X'))
```
该函数接受一个身份证号码作为输入,返回True或False表示输入是否有效的身份证号码。该函数首先使用正则表达式判断输入的字符串是否符合身份证号码的格式,然后计算身份证号码的校验码,并将其与输入的身份证号码最后一位比较,如果相同则认为该身份证号码有效。
阅读全文