请问怎样用JavaScript校验身份证号码
时间: 2024-06-10 18:06:19 浏览: 11
可以使用正则表达式的方式进行校验,如下所示:
```javascript
function validateIdCard(idCard) {
// 身份证号码校验规则
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(idCard) === false) {
return false;
} else {
return true;
}
}
```
通过调用以上函数,并传入身份证号码作为参数,即可进行身份证号码的校验,校验结果返回值为布尔类型。
相关问题
javascript正则表达式身份证校验
你可以使用以下的正则表达式来校验身份证号码的格式:
```javascript
function validateIDCard(idCard) {
// 18位身份证号码的正则表达式
var regExp18 = /^(d{6})(19|20)(d{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[01])(d{3})(d|X|x)$/;
// 15位身份证号码的正则表达式
var regExp15 = /^(d{6})(d{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[01])(d{3})$/;
return regExp18.test(idCard) || regExp15.test(idCard);
}
// 示例用法
var idCard1 = "44010319900101001X";
console.log(validateIDCard(idCard1)); // true
var idCard2 = "123456789012345";
console.log(validateIDCard(idCard2)); // false
```
上述代码中,`validateIDCard` 函数接受一个身份证号码作为参数,并使用两个不同的正则表达式进行匹配,分别用于判断18位和15位身份证号码的格式是否正确。函数返回值为布尔类型,如果身份证号码格式正确,则返回 `true`,否则返回 `false`。在示例用法中,我们分别测试了一个正确格式的身份证号码和一个错误格式的身份证号码。
使用JavaScript写一个身份证号校验
要使用JavaScript写一个身份证号校验程序,您可以以下代码为起点:
```
function checkID(id) {
var reg = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
if (!reg.test(id)) {
return false;
}
var province = id.substr(0, 2);
var birthday = id.substr(6, 8);
var last = id.substr(-1).toUpperCase();
var year = birthday.substr(0, 4);
var month = birthday.substr(4, 2);
var day = birthday.substr(6, 2);
var tempDate = new Date(year + "/" + month + "/" + day);
if (tempDate.getFullYear() != year || tempDate.getMonth() + 1 != month || tempDate.getDate() != day) {
return false;
}
var arr = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
var lastArr = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
var sum = 0;
for (var i = 0; i < 17; i++) {
sum += id.substr(i, 1) * arr[i];
}
var mod = sum % 11;
if (lastArr[mod] != last) {
return false;
}
return true;
}
```
上面的代码将正则表达式与其他逻辑相结合,以校验身份证号的有效性。其中的正则表达式用于验证身份证号的格式,并通过生日、省份和最后一位校验码等内容,进一步验证其真实性。
相关推荐
![js](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)