$(function(){
$("head").append('<link href="/Content/sweetalert-master (1)/sweetalert-master/dist/sweetalert.css" rel="stylesheet" />');
$("head").append('<script src="/Content/sweetalert-master (1)/sweetalert-master/dist/sweetalert.min.js"></script>');
})
var provinces = {
11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海",
32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川",
52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外"
};
function IDCardNumber(idcardID, provinceID, birthdayID, ageID, inputName) {
$("#" + idcardID).blur(function () {
var idNumber = $("#" + idcardID).val();
if (idNumber == "") {
$("#reset").click();
sweetAlert('', '身份证号不能为空', 'warning');
}
else {
var zifu = isCardID(idNumber);
if (zifu == true) {
var province, birthday, currDate, month, date, age, sex;
province = provinces[parseInt(idNumber.substr(0, 2))];
birthday = idNumber.substring(6, 10) + "-" + idNumber.substring(10, 12) + "-" + idNumber.substring(12, 14);
currDate = new Date();
month = currDate.getMonth() + 1;
date = currDate.getDate();
age = currDate.getFullYear() - idNumber.substring(6, 10) - 1;
if (idNumber.substring(10, 12) < month || (idNumber.substring(10, 12) == month && idNumber.substring(12, 14) <= date)) {
age++;
}
var ss = idNumber.substr(16, 1);
if (parseInt(idNumber.substr(16, 1)) % 2 == 1) {
//男
sex = "man";
} else {
//女
sex = "woman";
}
$("#" + provinceID).val(province);
$("#" + birthdayID).val(birthday);
$("#" + ageID).val(age);
if (sex == "man") {
$("input[name='" + inputName + "'][type=radio][value='" + sex + "']").prop("checked", true);
$("input[name='" + inputName + "'][type=radio][value='woman']").prop("checked", false);
}
else {
$("input[name='" + inputName + "'][type=radio][value='" + sex + "']").prop("checked", true);
$("input[name='" + inputName + "'][type=radio][value='man']").prop("checked", false);
}
}
else {
$("#reset").click();
sweetAlert('', zifu, 'warning');
}
}
})
}
function isCardID(sId) {
var iSum = 0;
var info = "";
if (!/^\d{17}(\d|x)$/i.test(sId)) return "你输入的身份证长度或格式错误";
sId = sId.replace(/x$/i, "a");
if (provinces[parseInt(sId.substr(0, 2))] == null) return "你的身份证地区非法";
sBirthday = sId.substr(6, 4) + "-" + Number(sId.substr(10, 2)) + "-" + Number(sId.substr(12, 2));
var d = new Date(sBirthday.replace(/-/g, "/"));
if (sBirthday != (d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate())) return "身份证上的出生日期非法";
for (var i = 17; i >= 0; i--) iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11);
if (iSum % 11 != 1) return "你输入的身份证号非法";
//provinces[parseInt(sId.substr(0,2))]+","+sBirthday+","+(sId.substr(16,1)%2?"男":"女");//此次还可以判断出输入的身份证号的人性别
provinces[parseInt]
return true;
}
将上面的方法在input标签一一对应
$(function(){
IDCardNumber("idNumber","province", "birthday", "age","sex")
})
验证是否为空
验证长度
验证号码是不是规范的