碎碎念:
头皮发麻是什么?是你遇到一个非必填,但却需要验证的输入框。正片开始的时候,单纯想验证下,验证不通过就赋值为空。所以这样的思路虽然不成熟,但没问题。然后测试说,得让用户知道输入格式错了,你得提示。于是这个验证手机号和电话号的验证就应运而生
const checkPhone = (rule, value, callback) => {
if (value) { // 判断当输入的有值时,才校验
if (!(/^(\d{3,4}-)?\d{7,8}$/.test(value)) && !(/^1[3456789]\d{9}$/.test(value))) {
callback(new Error('联系方式格式不正确'));
} else {
callback(); // 注意这里要回调一下,不然提交不了
}
} else {
callback();
}
};
然后呢,在rule里加
phone: [{ required: false, validator: checkPhone, trigger: 'blur' }],
//validator--上文函数,trigger--触发方式为失焦