生成一段身份证号码验证的代码
时间: 2024-10-04 09:01:20 浏览: 20
身份证号码验证通常涉及检查其格式、校验码计算以及有效性检查。以下是一个简单的Python示例,用于基本的中国大陆身份证号码验证:
```python
import re
def validate_id(id_number):
# 正则表达式匹配中国身份证号码格式
pattern = r'^\d{15}(?:\d{4}|[xX]\d{3})$'
if not re.match(pattern, id_number):
return False
# 验证位数
check_sum_list = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
weight_list = [1, 3, 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
digits = list(map(int, id_number))
sum_ = sum(d * w for d, w in zip(digits[:-1], weight_list))
# 校验码计算
checksum = (sum_ + weight_list[-1] * digits[-1]) % 11
# 对于18位号码,最后一位可能是字母X(10)或J(11)
if id_number[-1].isdigit():
if checksum == 10:
return id_number[-1] == 'X'
elif checksum == 11:
return id_number[-1] == 'J'
else:
return checksum == int(id_number[-1])
# 示例验证
id_to_test = "123456789012345678"
if validate_id(id_to_test):
print("身份证号码有效")
else:
print("身份证号码无效")
阅读全文