You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Joi实现排除[-1,1]区间的数值校验且支持小数?

Joi数值校验规则调整方案

Joi.number()默认已支持小数类型,你可以从以下两种方案中选一种补充你的校验规则,实现排除[-1,1]闭区间数值的需求:

方案1:内置声明式规则写法(推荐)

无需自定义逻辑,用Joi原生的alternatives规则匹配两种合法取值场景,代码更简洁:

Joi.alternatives()
  .try(
    Joi.number().max(-1), // 匹配小于等于-1的数值
    Joi.number().min(1)   // 匹配大于等于1的数值
  )
  .required()

方案2:自定义校验写法

如果需要自定义报错文案、后续调整规则更灵活,可以用custom方法实现:

Joi.number()
  .required()
  .custom((value, helpers) => {
    // 数值落在[-1,1]闭区间则判定为不合法
    if (value >= -1 && value <= 1) {
      return helpers.message("数值不能处于[-1,1]闭区间范围内");
    }
    return value;
  })

两种方案均默认支持整数、小数类型的校验,你可以根据自己的业务场景选择。

内容的提问来源于stack exchange,提问作者YetAnotherBot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 18:03:02