admin管理员组

文章数量:1122873

输入身份证号自动算出年龄,出生日期,性别

项目场景:

输入身份证号自动计算出年龄,出生日期,性别


解决方案:

1.定义需要的属性

2.以下是相关代码

3.,然后我这里的代码绑定的事件是光标离开输入框触发,这个根据自己的需求更改就行

注:可以用正则表达式做身份证号的判断提示,我这里只做了判断没做提示

<el-form-item label="身份证号" prop="idcard">
                                                                <el-input @blur.native.capture="go" v-model="form.idcard" placeholder="请输入本人身份证" style="width: 220px;" />
                                                            </el-form-item>

form:{
                    idcard:'',
                    age:'',
                    birthdate:''
                },

    const  go=function(val) {let iden = _this.form.idcard;let sex = null;let birth = null;let myDate = new Date();let month = myDate.getMonth() + 1;let day = myDate.getDate();let age = 0;let reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;console.log(reg.test(iden)) console.log(iden.length)if(reg.test(iden)){val = iden.length}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 = '0';elsesex = '1';//性别  ==> 1:男       0:女// this.form.sex = sex;_this.masterindex.AGE = age;_this.masterindex.DATE_OF_BIRTH = birth;console.log( _this.form.age)console.log( _this.form.birthdate)}

本文标签: 输入身份证号自动算出年龄出生日期性别