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

Laravel数字格式验证规则调整需求:适配多种金额格式

调整Laravel金额验证规则适配多种合法格式

这里给你调整好的验证规则,完美匹配你需要的所有合法格式,同时精准拦截不符合要求的输入:

'amount' => 'required|regex:/^(?:\d{1,3}(?:,\d{3})*|\d+)(?:\.\d{2})?$/|not_in:0'

规则拆解说明

咱们来拆解下这个正则的逻辑,让你清楚它为什么能满足你的需求:

  • ^ 和 $:锁定整个字符串,避免出现部分匹配的情况(比如不会让1000.00abc这种非法内容混过去)
  • 整数部分支持两种合法形式:
    • \d{1,3}(?:,\d{3})*:适配带千分位逗号的格式,比如1,000、1,000,000
    • |\d+:适配不带千分位的纯数字,比如1000、10000000
  • (?:\.\d{2})?$:可选的小数部分,必须严格是两位数字,没有小数部分也可以,但1位或3位以上的小数会被拦截

对应你的测试案例验证

对照你给出的测试项逐一验证:

  • ✅ 1000:符合纯数字整数规则,通过
  • ✅ 1000.00:纯数字整数+两位小数,通过
  • ✅ 10000000.00:纯数字整数+两位小数,通过
  • ❌ 1000.0000:小数部分四位,不匹配两位要求,拦截
  • ✅ 1,000.00:带千分位整数+两位小数,通过
  • ❌ 1,000.0000:小数部分四位,拦截
  • ✅ 1,000,000.00:带千分位整数+两位小数,通过

如果后续需要调整小数位数(比如允许1-2位),只需要把\d{2}改成\d{1,2}就行,非常灵活。

内容的提问来源于stack exchange,提问作者Vladimir-G

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:52:34