【问题标题】:joi validation schema : value could be of several length possiblesjoi 验证模式:值可能有多种长度
【发布时间】:2020-10-09 15:28:54
【问题描述】:

我在节点项目中使用 joi,我想提出以下规则:我的字段长度可能为 6 或 8(仅此而已),我尝试执行以下操作但它不起作用:

Joi.object({
    iban: Joi.string().alphanum().length(6).length(8)
  })

最后写的规则会覆盖第一个,所以这里我只接受长度为 8 的值,不再接受长度为 6 的值

提前致谢

【问题讨论】:

    标签: node.js joi


    【解决方案1】:

    尝试像这样编写自定义验证器。 你可以阅读更多关于自定义验证器here

    Joi.object({
        iban: Joi.string().alphanum().custom((value, helper) => {
           if(value.length === 6 || value.length === 8){
               return value;
           } else {
               return helper.message("iban must be 6 or 8 characters long")
           }
        });
    })
    ``
    

    【讨论】:

      【解决方案2】:

      这个很好用:

      Joi.alternatives().try(Joi.string().alphanum().length(6), Joi.string().alphanum().length(8))
      

      【讨论】:

        猜你喜欢
        • 2020-12-11
        • 1970-01-01
        • 2017-05-19
        • 1970-01-01
        • 2019-03-05
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        • 2016-02-16
        相关资源
        最近更新 更多