项目中遇到以下情况,当证件类型为身份的时候要验证身份证号,如果证件类型是港澳台通行证或者护照的时候就不用校验
此时要将校验规则写道data里进行自定义逻辑
var isCardId = (rule, value, callback) => {
if (!value) {
return new Error("请输入身份证号)");
} else {
if (this.addPersonnelForm.documenttype == "idcard") {
const reg =
/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/;
const card = reg.test(value);
if (!card) {
callback(new Error("身份证号格式有误!"));
} else {
callback();
}
}
}
};
表单验证规则里要写如下代码
IDNumber: [
{ required: true, message: "请输入证件号", trigger: "blur" },
{ validator: isCardId, trigger: "blur" },
],
同时在表单里要写prop属性才能进行匹配校验
<el-form-item label="证件号" prop="IDNumber">
<el-input
v-model="addPersonnelForm.IDNumber"
placeholder="请输入"
autocomplete="off"
style="width: 70%"
></el-input>
</el-form-item>
这样便能联动证件类型,当选择身份证时才进行身份证校验,当是护照或者港澳台通行证的时候不用验证,当然了也可以进行相应的验证,只需要判断以下证件类型进行相应的验证即可!!!