Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Joi valid函数并同时允许小写和大写字母_Javascript_Node.js_Validation_Hapijs_Joi - Fatal编程技术网

Javascript 如何使用Joi valid函数并同时允许小写和大写字母

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

大家好,谢谢你们抽出时间。 我正在尝试创建一个验证中间件。 我使用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将小写和大写函数的每一种组合,但都无法实现。 例如,我希望{字母:'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}));