验证身份证号码格式
// 验证正则表达式
let idCardReg = null;
// 验证是否正确
let idCardRegValue = null;
验证居民身份证
- 分为15与18位
if (zjhm && zjhm.length === 15) {
// 兼容第一代身份证 15位
idCardReg = /^[1-9]\d{7}(0[1-9]|1[0-2])([0-2][1-9]|[1-2]0|31)\d{3}$/;
idCardRegValue = idCardReg.test(zjhm);
} else if (zjhm && zjhm.length === 18) {
// 二代身份证
idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
idCardRegValue = idCardReg.test(zjhm);
} else {
idCardRegValue = false;
}
验证残疾人证
- 20位与22位
if (zjhm.length === 20) {
// 残疾人证-20位
idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][1-7][1-4]$/;
idCardRegValue = idCardReg.test(zjhm);
} else if (zjhm.length === 22) {
// 补办残疾证-22位
idCardReg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx][1-7][1-4]B[1-9]$/;
idCardRegValue = idCardReg.test(zjhm);
} else {
idCardRegValue = false;
}
从身份证号码中获取性别
居民身份证性别
xb = zjhm.substr(-2, 1) % 2 ? '1' : '2';
残疾人身份证
- 残疾人身份证后四位中,前2位表示残疾类别,后2位表示残疾等级
if (zjhm.length === 20) {
// 残疾人证-20位
xb = zjhm.substr(-4, 1) % 2 ? '1' : '2';
} else if (zjhm.length === 22) {
// 补办残疾证-22位
xb = zjhm.substr(-6, 1) % 2 ? '1' : '2';
}
根据身份证获取出生日期
- 获取居民身份证的出生日期(兼容15位),残疾人的截取其中18位处理
getCsrq(zjhm) {
let birth = '';
if(zjhm){
if(zjhm.length === 15){
birth = '19' + zjhm.substr(6,6);
} else if(zjhm.length === 18){
birth = zjhm.substr(6,8);
}
birth = birth.replace(/(.{4})(.{2})/,'$1-$2-');
}
return birth;
}
残疾人身份证获取出生日期
去掉后四位,然后调用居民身份证获取出生日期的方法
this.getCsrq(value.substr(0, 18));