Javascript 如何使用Joi valid函数并同时允许小写和大写字母
大家好,谢谢你们抽出时间。 我正在尝试创建一个验证中间件。 我使用Joi来验证从请求主体收到的信息 我只想允许以下字符串,例如:['a','b','c'],但也允许大写和小写实例。(例如“A”也是有效的) 我想做的是:Javascript 如何使用Joi valid函数并同时允许小写和大写字母,javascript,node.js,validation,hapijs,joi,Javascript,Node.js,Validation,Hapijs,Joi,大家好,谢谢你们抽出时间。 我正在尝试创建一个验证中间件。 我使用Joi来验证从请求主体收到的信息 我只想允许以下字符串,例如:['a','b','c'],但也允许大写和小写实例。(例如“A”也是有效的) 我想做的是: const schema = Joi.object().keys({ letter: Joi.string().valid('a','b','c').insensitive() }) schema.validate({letter: 'B'}) //return erro
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将小写和大写函数的每一种组合,但都无法实现。
例如,我希望{字母:'A'}将被证明是有效的
是否有一种方法可以将有效函数与不敏感函数结合起来,以便大写和小写都能被接受
谢谢您抽出时间。我想它工作得很好。如果运行以下代码,您将得到
{“字母”:“b”}
使用convert false,您将在caps中获得B
您可以在这里看到正在运行的代码-我仍然收到错误:{error:'Letter is invalid'}您使用的是哪种版本的joi?你看到我发布代码的链接了吗?非常感谢,它在版本更新后运行良好。很高兴它运行正常。请随意将其标记为答案,以供其他人参考。
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}));