你这写的,问题还不少
首先,你最后两个和英文判断有关的逻辑是怎么在写啊.前面 callback 后,你确定后面的一个判断,即使运行了,还能 callback 出去?
/D/
也不是你想,他是匹配所有除了数字之外的字符 比如 ~!@$%^&*()_+
这都是能被/D/
匹配到的
/^[A-Z]+$/
你这个判断是要求你验证的内容必须全部位大写字母啊..其实你前一步验证了一定包含英文,后面这个包含的英文必须为大写,这个并不好些,但是反过来,只要能匹配到小写英文就说明有问题不就好些多了么...
const validateVin = (rule, value, callback) => {
const containAlpha = /[a-zA-Z]/; //含有字母
const containLowerCase = /[a-z]/; //匹配小写字母
if (!value) {
callback(new Error('不能为空'));
} else if (value.length < 17) {
callback(new Error('不够17位'));
} else if (!containAlpha.test(value)) {
callback(new Error('必须包含有英文'));
} else if (containLowerCase.test(value)){
callback(new Error('英文必须大写'));
}
};
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…