JavaScript使用正则表达式完成身份证号码的验证。
时间: 2024-10-10 17:09:15 浏览: 36
JavaScript中使用正则表达式验证身份证号码通常涉及到检查号码的长度、数字的分布规律以及校验码的计算。下面是一个简单的例子,用于验证中国大陆的18位普通身份证号码:
```javascript
function validateIDCard(id) {
// 正则表达式模板
var regex = /^(\d{15}\d{2}|\d{18})$/; // 匹配15位或18位数字
// 检查是否满足基本规则
if (!regex.test(id)) return false;
// 如果是18位,还需要校验最后一位校验码
if (id.length === 18) {
var sum = 0;
for (var i = 7; i < id.length; i++) {
sum += parseInt(id.charAt(i), 11) * (i % 2 == 1 ? 1 : 2);
}
var lastDigit = parseInt(11 - (sum % 11), 11); // 对11取余,然后转为0-9
return id.charAt(id.length - 1) === lastDigit.toString();
}
return true; // 15位身份证无需校验码
}
// 示例用法
console.log(validateIDCard('123456789012345678')); // 输出true 或者 false
```
阅读全文