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

Laravel 11中如何校验0至100的两位小数数值?

Laravel 11 数值范围验证解决方案

规则有效性判断

  • 你提供的第二个规则 required|numeric|min:0.01|max:100 无效:因为min:0.01会直接拒绝合法的0值,不符合你允许0的需求。
  • 第一个规则 ['required', 'numeric', 'between:0,100'] 本身是有效的范围验证规则,但它没有限制小数位数,如果你需要严格限制两位小数,这个规则就不满足完整需求。

符合需求的完整验证规则

要同时实现「0到100范围(含边界)」和「允许两位小数」的校验,需要补充小数位数限制,推荐使用Laravel内置的decimal规则:

数组写法

[
    'required',
    'numeric',
    'between:0,100',
    'decimal:0,2'
]

管道写法

'required|numeric|between:0,100|decimal:0,2'

规则说明

  • required: 确保字段不为空
  • numeric: 校验字段为数值类型
  • between:0,100: 限制数值在0到100之间(包含0和100)
  • decimal:0,2: 限制小数部分最多2位,同时支持纯整数(如0、100)和带1-2位小数的数值(如0.5、99.99)

常见问题排查

如果之前的规则看似不生效,可能是以下原因:

  1. 第二个规则的min:0.01错误排除了0值,导致合法输入被拒绝
  2. 第一个规则缺少小数位数限制,若测试用例包含超过两位小数的数值(如10.123),虽然在范围内,但不符合小数位数要求,会让你误以为规则失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:32:09