虽然15位出生日期已经失效了 但是可能有少许人用 所以都处理了
// 身份证号码验证和解析
yanzhen(sfz) {
var sfzhmcode = sfz;
if (sfzhmcode.length == 15) {不需要处理15位的删去这个判断就行
if (!(/^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$/.test(sfzhmcode))) {
uni.showToast({
title: "您输入的身份证号码不是有效格式",
icon: 'none'
})
} else {
this.birthday = "19"+ sfzhmcode.slice(6,12);
this.birthday = this.birthday.replace(/(.{4})(.{2})/,"$1-$2-");
this.getSex(sfz);
}
} else if (sfzhmcode.length == 18) {
if ( !(/^[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]$/.test(sfzhmcode))) {
uni.showToast({
title: "您输入的身份证号码不是有效格式",
icon: 'none'
})
}else{
this.birthday = sfzhmcode.slice(6,14);
this.birthday = this.birthday.replace(/(.{4})(.{2})/,"$1-$2-");
this.getSex(sfz);
}
}else{
uni.showToast({
title: "请输入的15或者18位身份证号",
icon: 'none'
})
}
},
// 获取性别
getSex(idCard) {
if (parseInt(idCard.slice(-2, -1)) % 2 == 1) {
this.sex = '男';
}
else {
this.sex = '女';
}
}
在填写完身份证号码时调用 例如
this.yanzhen("350424870506202");
结果:
1987-05-06
writeInfo.vue:67 女