使用js技术验证用户输入的身份证号是否合法
标签:
JavaScript
这个功能取自公司项目重庆评估中心会商系统(二期)专家之家系统,前端的一个小功能验证,这个系统所有的功能都是我个人开发,现在单拿出来供前端人员使用和参考,也为我以后使用
/**
* 身份证
*/
var CardID ={
cityAreaId:{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:"国外"},
birthday:"",
sex:"",
/**
* 根据校验码验证身份证号是否存在
* @param param 身份证号
* @returns {*}
*/
cardIdIsExist:function(param){
var iSum = 0;
var weight = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];
var validate = ['1','0','X','9','8','7','6','5','4','3','2'];
for(var i = 0;i < param.length-1; i ++){
iSum += param.charAt(i)*weight[i];
}
var mode = iSum % 11;
if(param.charAt(param.length-1) != validate[mode]) {
return "你输入的身份证号校验不通过";
}else {
if (param.charAt(param.length - 2) % 2 == 0) {
this.sex = "1";//女
} else {
this.sex = "0";//男
}
}
return true;
/* }*/
},
/**
* 验证用户输入的身份证号
* @param param 身份证号
* @returns {*}
*/
verification:function(param) {
if (!/^\d{17}(\d|x)$/i.test(param)) {
if(!InputText.nonEmpty(param)){
return ;
}
return "你输入的身份证长度或格式错误";
} else if (this.cityAreaId[parseInt(param.substr(0, 2))] == null) {
return "你的身份证地区非法";
} else {
var birthday = param.substr(6, 4) + "-" + Number(param.substr(10, 2)) + "-" + Number(param.substr(12, 2));
var date = new Date(birthday.replace(/-/g, "/"));
this.birthday = date;
if (birthday != (date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate())) {
return "身份证上的出生日期不符合日历日期";
}else{
this.birthday =birthday;
}
return this.cardIdIsExist(param);
}
}
}
好了,单个功能写完了,使用的人员哪里不懂可以在下面评论告诉我,我会及时回答大家的
点击查看更多内容
8人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦