问题描述
我正在尝试支持字段的十进制值,但我想防止数字的包含范围。
预期有效期:
x<=1 || x>=1
所以基本上,我想使范围 [-1,1]
无效。目前,我有这个片段,但需要一些帮助。
Joi.number().required()
解决方法
您可以将 .when 与 .less 和 .greater 结合使用:
Joi.object({
number: Joi.number().required()
}).when(
Joi.object({ number: Joi.number().greater(-1).less(1) }).unknown(),{ then: Joi.object({ number: Joi.forbidden() }) }
)
当 number
包含在 [-1,1]
之间的值时,它将被禁止。
以下是一些结果:
{ number: 0.9 } // Validation Error: "number" is not allowed
{ number: 0 } // Validation Error: "number" is not allowed
{ number: -0.3 } // Validation Error: "number" is not allowed
{ number: 1 } // Validation Passed
{ number: -1 } // Validation Passed
{ number: -13 } // Validation Passed