如果启用了“传真”复选框,我有yup验证来检查传真号码(至少应为7位数字)。 验证规则为:
const faxSchema = yup
.string()
.transform(value => (value === undefined || value === null ? "" : value))
.when("faxEnabled", {
is: true,
then: yup
.string()
.matches(/^\d{7,}$|^$/, "Please enter a valid fax number")
.required("Please enter fax number"),
else: yup
.string()
.notRequired()
.nullable()
});
我还具有仅将有效数据保存在数据库中的功能
if (state.faxEnabled !== true) {
delete state.fax;
} else if (state.faxEnabled === true && !faxSchema.isValidSync(state.fax)) {
delete state.fax;
state.emailEnabled = false;
}
但是在函数中执行console.log(faxSchema.isValidSync(state.fax))时,对于数据输入12345却是正确的。 我不确定为什么yup验证器为此输入返回true。任何有关如何解决此问题的建议