// 身份证验证
async validID(rule, value, callback) {
// 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
if (reg.test(value)) {
await this.go(value.length);
callback();
} else {
callback(new Error("身份证号码不正确"));
}
},
// 实现自动生成生日,性别,年龄
go(val) {
let iden = this.formData.idNumber;
let sex = null;
let birth = null;
let myDate = new Date();
let month = myDate.getMonth() + 1;
let day = myDate.getDate();
let age = 0;
if (val === 18) {
age = myDate.getFullYear() - iden.substring(6, 10) - 1;
sex = iden.substring(16, 17);
birth =
iden.substring(6, 10) +
"-" +
iden.substring(10, 12) +
"-" +
iden.substring(12, 14);
if (
iden.substring(10, 12) < month ||
(iden.substring(10, 12) == month && iden.substring(12, 14) <= day)
)
age++;
}
if (val === 15) {
age = myDate.getFullYear() - iden.substring(6, 8) - 1901;
sex = iden.substring(13, 14);
birth =
"19" +
iden.substring(6, 8) +
"-" +
iden.substring(8, 10) +
"-" +
iden.substring(10, 12);
if (
iden.substring(8, 10) < month ||
(iden.substring(8, 10) == month && iden.substring(10, 12) <= day)
)
age++;
}
if (sex % 2 === 0) sex = 1;
else sex = 0;
//性别 ==> 0:男 1:女
// 性别
this.formData.sex = sex;
// 出生日期
this.formData.birthdate = birth;
// 年龄
this.formData.age = age;
},
//原文链接:https://blog.csdn.net/yc603740749/article/details/129751116
VUE根据身份证号显示出生日期、性别和年龄
最新推荐文章于 2024-07-08 14:39:30 发布