您的位置:首页 > Web前端 > JavaScript

JS 验证身份证号码的正确性

2013-04-16 11:54 162 查看
function isTrueValidateCodeBy18IdCard(idCard) {
var a_idCard = idCard.split("");//
/*
*    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 ];//
*    此种数组表示时候于IE9以上的浏览器(Firefox,Chrome,Safari等未测试)。
*  下述方法可用于IE8 版本(IE8一下未测试- -!)。IE不支持强制数组操作
*/
var Wi = new Array( 7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1 );// 加权因子
var ValideCode = new Array( 1, 0, 10, 9, 8, 7, 6, 5, 4, 3, 2 );// 身份证验证位值.10代表X
var sum = 0; // 声明加权求和变量
if ((a_idCard[17] == 'x')||(a_idCard[17] == 'X')) {
a_idCard[17] = 10;// 将最后位为x的验证码替换为10方便后续操作
}
for ( var i = 0; i < 17; i++) {
sum += Wi[i] * a_idCard[i];// 加权求和
}
valCodePosition = sum % 11;// 得到验证码所位置
if (a_idCard[17] != ValideCode[valCodePosition]) {
alert("您的身份证号码最后一位校验码不正确,请重新输入");                     return false;
}
else{
return true;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: