将自定义验证器中的现有验证器用于validate.js

时间:2018-12-05 16:13:38

标签: javascript validate.js

我正在尝试将一组约束重写为一个验证器,该验证器应返回单个(第一个找到的)错误而不是所有错误。现在,我有以下代码,当提供一个空字符串时,将返回两个错误(出现和发送电子邮件):

email: {
        presence: {
          message: ValidationErrors.EMAILMISSING
        },
        email:{
          message: ValidationErrors.EMAILINVALID
        },
        length: {
          maximum: 128,
          tooLong: ValidationErrors.EMAILTOOLONG
        }
      },

我要做的是编写一个自定义验证器,该验证器使用当前存在的验证器(状态,电子邮件和长度),但仅返回第一个发现的错误。这样的东西(下面的伪代码):

email: value => {
        if (!value) {
          return ValidationErrors.EMAILMISSING;
        }

        if (value.length > 128) {
          return ValidationErrors.EMAILTOOLONG;
        }

        if (value.isEmail()) {
          return ValidationErrors.EMAILINVALID;
        }
      },

当然,在当前情况下,我可以通过仅获取validate.async()返回的错误数组的第一条记录来实现相同的逻辑。我想知道是否可以使用自定义验证器中的现有验证器,是否需要将它们用于更复杂的验证逻辑。

我不确定我是否能够很好地解释我的问题,如果我可以提供更多信息,请询问详细信息。

0 个答案:

没有答案