前端做身份证验证的正则表达式
时间: 2024-01-23 20:14:36 浏览: 295
身份证号码是一种特殊的格式,可以使用正则***身份证号码:
```javascript
^(\\d{6})(19|20)?(\\d{2})(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])(\\d{3})(\\d|[Xx])$
```
这个正则表达式的含义是:
- `^` 表示匹配字符串的开始
- `(\\d{6})` 表示匹配6位数字,用于匹配身份证号码的前6位地区代码
- `(19|20)?` 表示匹配19或20,可选项,用于匹配身份证号码的年份的前两位
- `(\\d{2})` 表示匹配2位数字,用于匹配身份证号码的年份的后两位
- `(0[1-9]|1[0-2])` 表示匹配01-12之间的数字,用于匹配身份证号码的月份
- `(0[1-9]|[12]\\d|3[01])` 表示匹配01-31之间的数字,用于匹配身份证号码的日期
- `(\\d{3})` 表示匹配3位数字,用于匹配身份证号码的顺序码
- `(\\d|[Xx])` 表示匹配一个数字或者字母X(大小写均可),用于匹配身份证号码的校验码
- `$` 表示匹配字符串的结束
请注意,这只是一个示例的正则表达式,实际上身份证号码的验证可能会更复杂,因为还需要考虑闰年、地区代码等因素。在实际使用中,建议使用成熟的身份证验证库或者根据具体需求进行适当的修改。
相关问题
前端身份证号码验证正则表达式
### 15/18位身份证号码验证的正则表达式
对于前端身份证号码验证,可以采用如下所示的正则表达式来匹配有效的15位或18位中国居民身份证号码:
#### 15位身份证号码正则表达式
```javascript
var idCard15Pattern = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
```
此模式确保了前两位不为零,并且日期部分符合公历标准[^1]。
#### 18位身份证号码正则表达式
```javascript
var idCard18Pattern = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
```
该模式同样保证了年月日的有效性以及最后一位可能是数字或者是大写的英文字母'X'[ ^1 ]。
为了简化实际应用中的代码编写工作量并提高可读性和维护性,通常会将上述两种情况合并成一个更通用的形式来进行验证:
```javascript
function validateIdCard(idCard){
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|x|X)$)/;
return reg.test(idCard);
}
```
这段函数能够处理三种不同形式的身份证明文件编号——即旧版15位编码、新版无校验码的18位编码以及带有字母结尾的新版18位编码。
阅读全文
相关推荐














