验证身份证号的正则

一般网友给的验证身份证的正则都不太准确。eg: /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/ ;

 

因为业务需要所以自己稍微优化了一下。  验证的是18 19 2019年的 具体的2月没有验证天数一般的还可以了。

/^((\d{6})(18\d{2}|19\d{2}|20[0|1]\d)(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])(\d{3})$|^(\d{6})(18\d{2}|19\d{2}|20[0|1]\d)(0[1-9]|1[0-2])([0-2][0-9]|3[0-1])(\d{3})(\d|X|x))$/

 

还有通过身份证号计算 年龄  出生年月

computedAge: Ember.computed("staff.staffCardCode", function() {//Ember CP age
var UUserCard = this.get("staff.staffCardCode");
if (!UUserCard) {
return;
}
//取得系统时间
let sysTime = this.get("dataLoader.sysconfig.sysTime");
if (sysTime) {
sysTime = sysTime;
} else {
sysTime = new Date().getTime() / 1000;
}
var myDate = this.get("dateService").timestampToTime(sysTime);
var month = myDate.getMonth() + 1;
var day = myDate.getDate();
var age = myDate.getFullYear() - UUserCard.substring(6, 10) - 1;
if (UUserCard.substring(10, 12) <= month && UUserCard.substring(12, 14) <= day) {
age++;
}
return age;
}),
computedBirthday: Ember.computed("staff.staffCardCode", function() {//Ember CP birthday
var UUserCard = this.get("staff.staffCardCode");
if (!UUserCard) {
return;
}
var tmpStr = "";
var strReturn = "";
if (UUserCard.length == 15) {
tmpStr = UUserCard.substring(6, 12);
tmpStr = "19" + tmpStr;
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
return tmpStr;
} else {
tmpStr = UUserCard.substring(6, 14);
tmpStr = tmpStr.substring(0, 4) + "-" + tmpStr.substring(4, 6) + "-" + tmpStr.substring(6);
return tmpStr;
}
}),

if (parseInt(UUserCard.substr(16, 1)) % 2 == 1) //计算性别

 

posted on 2017-04-13 15:25  王飞飞  阅读(162)  评论(0编辑  收藏  举报

导航