Yup验证器在错误输入上返回true

时间:2019-08-09 17:19:04

标签: yup

如果启用了“传真”复选框,我有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。任何有关如何解决此问题的建议

0 个答案:

没有答案