使用正则表达式验证居民身份证号码
时间: 2023-08-17 22:14:49 浏览: 53
当然可以!以下是一个使用正则表达式验证中国居民身份证号码的示例:
```python
import re
def validate_id_card(id_card):
pattern = r'^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}([0-9Xx])$'
if re.match(pattern, id_card):
return True
else:
return False
id_card_number = input("请输入身份证号码:")
if validate_id_card(id_card_number):
print("身份证号码有效!")
else:
print("身份证号码无效!")
```
这里使用了一个正则表达式模式(pattern)来验证身份证号码。它可以验证以下规则:
- 6位地区码(第一位不能为0)
- 8位生日码(年份在1800-2099之间,月份在01-12之间,日期在01-31之间)
- 3位顺序码(可包含数字0-9)
- 1位校验码(数字0-9,或字母X或x)
如果输入的身份证号码符合以上规则,就会返回True,表示有效;否则返回False,表示无效。
注意:这只是一个简单的示例,实际上,验证身份证号码需要考虑更多的规则和校验。
相关问题
正则表达式验证身份证号码
正则表达式验证中国大陆身份证号码:
```javascript
/^\d{17}(\d|x)$/i
```
解释:
- `^` 匹配字符串开始
- `\d` 匹配数字
- `{17}` 匹配前面的数字 17 次
- `(\d|x)` 匹配最后一位数字或字母 x
- `i` 表示大小写不敏感
- `$` 匹配字符串结束
示例:
```javascript
const regex = /^\d{17}(\d|x)$/i;
const id1 = '110101199003075192'; // 正确
const id2 = '11010119900307519x'; // 正确
const id3 = '11010119900307519X'; // 正确
const id4 = '11010119900307519'; // 错误,长度不足
const id5 = '1101011990030751921'; // 错误,长度超过 18 位
console.log(regex.test(id1)); // true
console.log(regex.test(id2)); // true
console.log(regex.test(id3)); // true
console.log(regex.test(id4)); // false
console.log(regex.test(id5)); // false
```
正则表达式如何校验身份证号码
正则表达式可以校验身份证号码,示例代码如下:
```python
import re
def check_id_card(id_card):
if not re.match(r'^\d{17}[\dX]$', id_card):
return False
# 其他校验规则
return True
```
其中,`^` 表示匹配字符串的开头,`\d` 匹配任意数字,`{17}` 表示数字出现 17 次,`[\dX]` 表示最后一位可以是数字或字母 X。`$` 表示匹配字符串的结尾。