input 输入框 验证身份证号码
时间: 2023-10-13 09:07:48 浏览: 33
好的,可以参考下面的代码来验证身份证号码:
```javascript
function validateIdCard(idCard) {
// 检查身份证号码是否为空
if (idCard === '') {
return false;
}
// 检查身份证号码格式是否正确
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (!reg.test(idCard)) {
return false;
}
// 检查身份证号码是否合法
var S = (parseInt(idCard.charAt(0)) + parseInt(idCard.charAt(10))) * 7 +
(parseInt(idCard.charAt(1)) + parseInt(idCard.charAt(11))) * 9 +
(parseInt(idCard.charAt(2)) + parseInt(idCard.charAt(12))) * 10 +
(parseInt(idCard.charAt(3)) + parseInt(idCard.charAt(13))) * 5 +
(parseInt(idCard.charAt(4)) + parseInt(idCard.charAt(14))) * 8 +
(parseInt(idCard.charAt(5)) + parseInt(idCard.charAt(15))) * 4 +
(parseInt(idCard.charAt(6)) + parseInt(idCard.charAt(16))) * 2 +
parseInt(idCard.charAt(7)) * 1 + parseInt(idCard.charAt(8)) * 6 +
parseInt(idCard.charAt(9)) * 3;
var Y = S % 11;
var M = "F";
var JYM = "10X98765432";
M = JYM.substr(Y, 1);
if (M !== idCard.charAt(17).toUpperCase()) {
return false;
}
// 检查身份证号码的生日是否合法
var birthday = idCard.substr(6, 4) + "/" + idCard.substr(10, 2) + "/" + idCard.substr(12, 2);
var d = new Date(birthday);
if (isNaN(d.getTime())) {
return false;
}
if (birthday !== d.getFullYear() + "/" + (d.getMonth() + 1) + "/" + d.getDate()) {
return false;
}
return true;
}
```
然后可以在输入框的 `onblur` 事件中调用该函数进行验证,例如:
```html
<input type="text" name="id_card" id="id_card" onblur="validateIdCard(this.value)">
```