JS 验证身份证信息有效性详解
版权申诉
67 浏览量
更新于2024-07-06
收藏 19KB DOCX 举报
JavaScript 验证身份证信息有效性
在本文中,我们将详细介绍如何使用 JavaScript 验证身份证信息的有效性。身份证号码是一种重要的身份识别信息,正确地验证其有效性是非常重要的。本文将基于身份证号码编码规章,使用 JavaScript 对身份证信息进行有效性验证,并提供了详细的代码实现。
身份证号码编码规章
身份证号码可以分为两种:15 位和 18 位。15 位身份证号码编码规章为:ddddddyymmddxxp,其中:
* ddddd:地区码
* yymmdd:诞生年月日
* xx:挨次类编码,无法确定
* p:性别,奇数为男,偶数为女
18 位身份证号码编码规章为:ddddddyyyymmddxxxy,其中:
* ddddd:地区码
* yyyymmdd:诞生年月日
* xxx:挨次类编码,无法确定,奇数为男,偶数为女
* y:校验码,该位数值可通过前 17 位计算获得
身份证号码验证算法
为了验证身份证号码的有效性,我们需要使用加权因子和校验位计算公式。加权因子为 Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1],校验位计算公式为:Y_P = mod(∑(Ai × Wi), 11),其中 i 为身份证号码从右往左数的 2-18 位;Y_P 为脚丫校验码所在校验码数组位置。
JavaScript 实现
使用 JavaScript,我们可以实现身份证号码的验证算法。下面是实现代码:
```javascript
var Wi = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1]; // 加权因子
var ValideCode = [1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2]; // 身份证验证位值
function IdCardValidate(idCard) {
idCard = trim(idCard.replace(/ /g, ""));
if (idCard.length == 15) {
return isValidityBrithBy15IdCard(idCard);
} else if (idCard.length == 18) {
var a_idCard = idCard.split(""); // 得到身份证数组
if (isValidityBrithBy18IdCard(idCard) && isTrueValidateCodeBy18IdCard(a_idCard)) {
return true;
} else {
return false;
}
} else {
return false;
}
}
function isTrueValidateCodeBy18IdCard(a_idCard) {
// 验证 18 位身份证号码的校验码
var Y_P = 0;
for (var i = 17; i >= 2; i--) {
Y_P += a_idCard[i] * Wi[17 - i];
}
Y_P = Y_P % 11;
return Y_P == a_idCard[17];
}
```
结论
通过本文,我们可以使用 JavaScript 验证身份证信息的有效性。我们首先介绍了身份证号码编码规章,然后使用加权因子和校验位计算公式实现了身份证号码的验证算法。最后,我们提供了 JavaScript 实现代码,供读者参考。
2022-01-22 上传
2021-12-05 上传
2021-12-29 上传
2021-09-26 上传
2022-01-12 上传
2022-01-22 上传
2021-11-24 上传
2022-01-19 上传
2022-05-25 上传
惚如远行客
- 粉丝: 0
- 资源: 5209
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析