//这个可以验证15位和18位的身份证,并且包含生日和校验位的验证
function isIdCardNo() {
var tmpStr = "";
var num = $('#idNumber').val();
//num = num.toUpperCase();
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num))){
//$.messager.alert('提示', '输入的身份证号长度不对,或者号码不符合规定!\n15位号码应全为数字,18位号码末位可以为数字或X');
$.messager.alert('提示', '身份证号不合法');
return false;
}else{
if (num.length == 15) {
tmpStr = num.substring(6, 12);
tmpStr = "19" + tmpStr;
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
} else {
tmpStr = num.substring(6, 14);
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
}
if (isValidDate(tmpStr)) {
$('#birthday').datebox('setValue', tmpStr);
} else {
$.messager.alert('提示', '身份证号不合法');
//$('#birthday').datebox('setValue', '');
return false;
}
}
}
//验证日期是否合法
function isValidDate(sText) {
var reDate = /(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)/;
return reDate.test(sText);
}