检测身份证号输入是否正确的代码
时间: 2023-06-14 20:08:23 浏览: 174
您可以使用正则表达式来检测身份证号码是否正确。以下是一个示例代码:
```python
import re
def check_id_number(id_number):
# 身份证号正则表达式
pattern = re.compile(r'^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dXx]$')
if pattern.match(id_number):
return True
else:
return False
id_number = input("请输入身份证号码:")
if check_id_number(id_number):
print("身份证号码输入正确!")
else:
print("身份证号码输入有误,请重新输入!")
```
正则表达式中的各个部分含义如下:
- `^` 表示匹配字符串的开头
- `[1-9]\d{5}` 表示前6位为地区码,第一位数字不能为0
- `(18|19|20)\d{2}` 表示年份,18、19或20开头,后面跟2位数字
- `(0[1-9]|1[0-2])` 表示月份,01-12之间的数字
- `(0[1-9]|[1-2]\d|3[0-1])` 表示日期,01-31之间的数字
- `\d{3}` 表示顺序码,3位数字
- `[\dXx]` 表示校验码,最后一位可能是数字或字母X或x
- `$` 表示匹配字符串的结尾
如果身份证号码的格式不符合以上规则,则返回False,否则返回True。
阅读全文