证件号过滤正则表达式
时间: 2024-08-29 21:00:29 浏览: 96
证件号码的过滤正则表达式会根据不同的证件类型(如身份证、护照等)有所不同。这里举几个常见类型的例子:
1. **中国居民身份证** (18位):
```regex
^(\d{15}|\d{18})[xX]\d{1}$|^\d{17}([0-9]|X|x)$
```
- 第一种情况匹配15位或18位,后三位是校验码,可以用字母X或x表示。
- 第二种情况匹配18位,第17位是校验码,只能是0-9或X/x。
2. **美国社会安全号码 (SSN)**:
```regex
^(\d{3}-?\d{2}-?\d{4})$
```
匹配三个连续数字-两个连续数字-四个连续数字的形式,中间可以有连字符(-)。
3. **护照号(国际通用)**:
```regex
^[A-Z]{2}[0-9]{7}(?:[A-Z]{2}\d{3})?$
```
典型的格式是两个大写字母开头,后面跟着七位数字,最后可能会有两组更多的字母和数字。
请注意,实际应用中可能还需要考虑更多细节,比如是否有出生日期信息等。对于敏感数据,建议使用库函数处理,而不是直接正则表达式解析。
阅读全文