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

非必填整数验证求助:输入需在0-100范围,digits_between规则失效

解决非必填0-100整数验证的问题

嘿,我懂你遇到的麻烦了——digits_between:1,2这个规则确实不太适合你的场景,它只允许1到2位的数字,直接把0(1位但起始值是1)和100(3位)都排除在外了。咱们换个更精准的思路来搞定这个非必填的0-100整数验证:

方案1:用数值范围验证(以Laravel为例)

如果是Laravel这类框架的验证,直接组合nullable、integer、min和max规则就行,完美匹配你的需求:

  • nullable:允许字段为空,满足非必填要求
  • integer:确保输入的是整数类型
  • min:0 + max:100:严格限定数值在0到100之间

代码示例:

$request->validate([
    'score' => 'nullable|integer|min:0|max:100',
]);

方案2:自定义逻辑验证(通用场景)

如果是前端或者其他没有现成验证规则的场景,核心逻辑是:先判断字段是否有输入,有输入时再验证是否为整数且在0-100区间内。

比如JavaScript的实现示例:

function validateScoreInput(scoreValue) {
    // 非必填,空值直接通过验证
    if (!scoreValue) return true;
    
    const scoreNum = parseInt(scoreValue, 10);
    // 验证是否为整数,且数值在0-100之间
    return Number.isInteger(scoreNum) && scoreNum >= 0 && scoreNum <= 100;
}

这个思路的关键是不要用位数限制,而是直接针对数值范围做校验,这样就能完美覆盖0和100这两个边界值啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:38:21