由于不管是测试项目练手还是实际项目开发,都应该考虑数据的严密性和软件的通俗易懂的实用性,下面是我用js实现的验证身份证号格式以及身份证号中的生日验证代码
//生日移出点击事件验证身份证号中的生日验证
$("#DateBirth").blur(function checkIdAndBirthday(strId,strBrithday){
var strBrithday = $("#DateBirth").val();
var strId = $("#IDNumber").val();
var dateTemp= new Date() ;
if(strBrithday != ""){
var arr_date = strBrithday.split("-");
var inputDate = new Date(arr_date[0],arr_date[1]-1,arr_date[2]);
if(inputDate > dateTemp){
alert("出生日期时间不能大于今天!请检查!");
return false;
}
//15位身份证
if(strId.length == 15){
//从ID NO 中截取生日6位数字,前面加上19
var idBirthday = "19"+strId.substr(6,6);
//日期字符串中的8位生日数字
var textBirthday = arr_date[0]+arr_date[1]+arr_date[2];
if(idBirthday == textBirthday){
return true;
}else{
alert("出生日期与身份证日期不一致,请检查!");
return false;
}
}
//18位身份证
if(strId.length == 18){
//从ID NO 中截取生日8位数字
var idBirthday = strId.substr(6,8);
//日期字符串中的8位生日数字
var textBirthday = arr_date[0]+arr_date[1]+arr_date[2];
//alert(idBirthday);
//alert(textBirthday);
if(idBirthday == textBirthday){
return true;
}else{
alert("出生日期与身份证日期不一致,请检查!");
return false;
}
}
}
return true;
})
//验证身份证证件号格式
$("#IDNumber").blur(function () {
var a = $("#IDNumber").val();
var textIDNumber = /^[1-9]{1}[0-9]{14}$|^[1-9]{1}[0-9]{16}([0-9]|[xX])$/;
if (textIDNumber.test(a)) {
return true;
} else {
alert("身份证证件号格式有误!");
return false;
}
})
若看完不能给您带来帮助,肯定是我表达不够明了不够清晰,请多多指教,多多谅解,谢谢!