js正则表达式匹配身份证号码
时间: 2024-01-23 19:02:48 浏览: 31
可以使用以下正则表达式匹配身份证号码:
```javascript
/^\d{17}[\dXx]$/
```
其中,`\d` 表示数字,`{17}` 表示前面的数字必须出现 17 次,`[\dXx]` 表示最后一位可以是数字或者大写字母 X 或小写字母 x。
示例代码:
```javascript
const idCardRegex = /^\d{17}[\dXx]$/;
const idCardNumber = '11010119900307771X';
if (idCardRegex.test(idCardNumber)) {
console.log('身份证号码格式正确');
} else {
console.log('身份证号码格式错误');
}
```
相关问题
正则表达式验证身份证号码
正则表达式验证中国大陆身份证号码:
```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
```
正则表达式实现身份证验证
要使用正则表达式来验证身份证号码,你可以使用以下示例代码:
```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
- `$`:匹配输入字符串的结束位置
如果输入的身份证号码符合正则表达式的模式,则验证通过,否则验证失败。
请注意,这只是一个基本的身份证号码验证示例,仅验证了身份证号码的格式是否正确。如果需要更严格的验证,还需要考虑身份证号码的校验位等其他规则。