javascript 实现身份证号验证

var Check = {	

	// 身份证号校验
	// 如果正确返回 true,如果错误,返回正确的身份证号
	idCard : function(str){
		var vaildCode = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
		var vaildCode2 = {
			0 : '1',
			1 : '0',
			2 : 'x',
			3 : '9',
			4 : '8',
			5 : '7',
			6 : '6',
			7 : '5',
			8 : '4',
			9 : '3',
			10 : '2'
		};
		var ids = str.split('');
		var idLastNum = ids[ids.length - 1];
		var pre17 = str.substr(0, 17);
		var sum = 0;

		// 1、相乘 求和
		for (var i = 0; i < ids.length - 1; i++) {
			sum += Number(ids[i]) * Number(vaildCode[i]);
		};

		//2、除以 11 取余
		var ba = sum % 11;

		//3、最后一位校验码
		var getLastNum = vaildCode2[ba];

		if(getLastNum != idLastNum){
			// return false;
			return pre17 + getLastNum;
		}

		return true;
	}

}

 

发表评论