正则表达式实现身份证验证
时间: 2023-08-28 07:16:40 浏览: 94
要使用正则表达式来验证身份证号码,你可以使用以下示例代码:
```javascript
function validateIDCard(idCard) {
// 正则表达式
var regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/;
// 验证身份证号码
if (regex.test(idCard)) {
console.log("身份证号码有效");
} else {
console.log("身份证号码无效");
}
}
// 示例用法
var idCard1 = "11010119900307401X";
validateIDCard(idCard1); // 输出: 身份证号码有效
var idCard2 = "123456789012345678";
validateIDCard(idCard2); // 输出: 身份证号码无效
```
在上述示例中,我们定义了一个名为 `validateIDCard` 的函数,该函数接受一个参数 `idCard`,表示待验证的身份证号码。
我们使用正则表达式 `/^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/`来进行验证。该正则表达式的含义如下:
- `^`:匹配输入字符串的开始位置
- `[1-9]`:第一位不能为0,即1-9之间的数字
- `\d{5}`:接下来的5位是数字
- `(19|20)`:紧接着的两位数字必须是19或者20
- `\d{2}`:再接着的两位是数字
- `(0[1-9]|1[0-2])`:接下来的两位数字表示月份,范围是01-09或者10-12
- `(0[1-9]|[12]\d|3[01])`:再接下来的两位数字表示日期,范围是01-09、10-29或者30-31
- `\d{3}`:接下来的3位是数字
- `(\d|X)`:最后一位可以是数字或者大写字母X
- `$`:匹配输入字符串的结束位置
如果输入的身份证号码符合正则表达式的模式,则验证通过,否则验证失败。
请注意,这只是一个基本的身份证号码验证示例,仅验证了身份证号码的格式是否正确。如果需要更严格的验证,还需要考虑身份证号码的校验位等其他规则。
阅读全文