JS 验证身份证信息有效性详解

版权申诉
0 下载量 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 实现代码,供读者参考。