如何使用Joi有效函数并允许小写和大写字母



大家好,谢谢大家抽出时间。我正在尝试创建一个验证中间件。我正在使用Joi来验证我从请求主体收到的信息。

我希望只允许以下字符串,例如:[‘a’,‘b’,‘c’],但也允许大小写实例。(例如"A"也是有效的(;

我想做的事:

const schema = Joi.object().keys({
   letter: Joi.string().valid('a','b','c').insensitive()
})
schema.validate({letter: 'B'}) //return error but i want it to return 'B'

我也尝试过小写和大写函数与convert的每一种组合,但我无法使其工作。我希望例如{letter:‘A’}能被证明是有效的。

有没有一种方法可以将有效函数与不敏感函数结合起来,这样大写和小写都会被接受?

谢谢你抽出时间。

我想它运行得很好。如果您运行以下代码,您将获得{"letter": "b"}

const Joi = require("@hapi/joi");
const schema = Joi.object().keys({
  "letter": Joi.string().valid("a", "b", "c").insensitive()
});
console.log(schema.validate({"letter": "B"}, {"convert": true}));

使用convert false,您将得到大写的B。

你可以在这里看到运行代码-https://repl.it/repls/HarmfulEvenPhases

相关内容

最新更新