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;
}
}
};