检查自己的自定义验证规则是否每一条逻辑都能够执行到callback函数!!!
这是一段错误的代码,欲实现 1.当用户不输入网址的时候不做处理,直接跳出验证;2.输入网址的时候验证
// 验证官网web的规则
export const checkWeb = (rule, value, cb) => {
// 如果取反为真,说明其是空字符串、null、undefined等,说明用户并不想现在填写
if (!value) {
return cb()
}
// 验证官网的正则表达式
const regWebFormat = /^(http|https|www)(\S{6,250})$/
if (!regWebFormat.test(value)) {
// 当时是这么写的
cb(new Error('网址格式错误!'))
}
}
本来开心大吉的开始做数据提交了,却卡在这里很久很久。[泪奔][泪奔][泪奔]
原因只是因为当输入正确的网址的之后,没有调用callback函数的逻辑控制,从而导致不报错,不调用validate方法。[泪奔][泪奔][泪奔]
(疯狂的检查代码、测试正则长达数小时,原来只是没有调用callback函数…[无语]
修改后代码
// 验证官网web的规则
export const checkWeb = (rule, value, cb) => {
// 如果取反为真,说明其是空字符串、null、undefined等,说明用户并不想现在填写
if (!value) {
return cb()
}
// 验证官网的正则表达式
const regWebFormat = /^(http|https|www)(\S{6,250})$/
if (regWebFormat.test(value)) {
// 正确格式的web网站
return cb()
}
cb(new Error('网址格式错误!'))
}