如何编写代码来定义一个变量,接收用户输入的身份证号,然后利用特定的正则表达式模式验证其合法性,包括分段规则和有效性检查?
时间: 2024-12-18 21:21:31 浏览: 49
在编程中,你可以使用多种语言来实现这个功能。下面是一个简单的Python示例,展示了如何接收用户输入的身份证号码并使用正则表达式进行验证:
```python
import re
def validate_id_number(id_number):
# 身份证号通常由18位数字组成,分为6+4+4+4三部分,最后一位是校验码
pattern = r'^\d{15}(?:\d|X|x)$' # 匹配15位数字,末尾可能有1位校验码
if not re.match(pattern, id_number):
return False # 如果不符合基本格式,则返回False
# 对于18位号码,需要进一步按照标准算法校验
if len(id_number) == 18:
birth_year = int(id_number[:6])
check_sum = sum(int(num)*weight for num, weight in zip(reversed(id_number), '7894567892345678')) % 11
check_char = '10X98765432'[check_sum]
if id_number[-1] != check_char:
return False
return True # 验证通过,返回True
id_input = input("请输入您的身份证号码: ")
if validate_id_number(id_input):
print("身份证号码有效")
else:
print("身份证号码无效")
阅读全文