大陆居民身份证真伪校验

来源:互联网 时间:1970-01-01

var IdCardValid = {//身份证检查

isIdCard : function(_id) {

var returnObj = new Object();

var id = $.trim(_id.toUpperCase());

var idArray = this._splitId(id);

if (idArray.length > 0) {

if (id.length != 18) {

returnObj.status = false;

returnObj.info = " 身份证号码必须是18位";

return returnObj;

}

var checksum = id.substring(17, 18);

var sum = 0;

for ( var i = 1; i <= idArray.length; i++) {

var Ai = idArray[i - 1];

var Wi = this._getWeightingFactor(i);

if (Wi != -1) {

sum += Ai * Wi;

}

}

var mod = sum % 11;

if (this._getChecksum(mod) == checksum) {

returnObj.status = true;

return returnObj;

} else {

returnObj.status = false;

returnObj.info = " 身份证号码输入错误";

return returnObj;

}

} else {

returnObj.status = false;

returnObj.info = " 身份证号码格式错误";

return returnObj;

}

},

_splitId : function(_id) {

var len = _id.length;

var array = new Array();

for ( var i = 0; i < len - 1; i++) {

array.push(_id.charAt(i));

}

return array;

},

_getWeightingFactor : function(_index) {

switch (_index) {

case 1:

return 7;

case 2:

return 9;

case 3:

return 10;

case 4:

return 5;

case 5:

return 8;

case 6:

return 4;

case 7:

return 2;

case 8:

return 1;

case 9:

return 6;

case 10:

return 3;

case 11:

return 7;

case 12:

return 9;

case 13:

return 10;

case 14:

return 5;

case 15:

return 8;

case 16:

return 4;

case 17:

return 2;

default:

return -1;

}

},

_getChecksum : function(_mod) {

switch (_mod) {

case 0:

return 1;

case 1:

return 0;

case 2:

return "X";

case 3:

return 9;

case 4:

return 8;

case 5:

return 7;

case 6:

return 6;

case 7:

return 5;

case 8:

return 4;

case 9:

return 3;

case 10:

return 2;

default:

return -1;

}

}

};


相关阅读:
Top