【问题标题】:How to validate integers and max float digits in one rule in laravel如何在 laravel 的一条规则中验证整数和最大浮点数
【发布时间】:2021-12-25 14:24:42
【问题描述】:

大家好,我需要在我的 laravel 应用程序上验证某些内容,但我不知道如何。

所以如果用户介绍1234.55应该允许,因为它只有5个数字,但是如果用户介绍12345678.55必须拒绝!

到目前为止我所拥有的。

return [
    'max_debit' => 'required|numeric|min:0'
];

我尝试使用digits_between,但是当我使用它时,验证不允许浮点数。

所以规则应该匹配:

  • 整数
  • 浮点数 -> 全部大于或等于 0
  • 最大位数:9
  • 接受:1234.55
  • 拒绝:12345678.55

【问题讨论】:

    标签: php laravel laravel-validation


    【解决方案1】:

    您可以使用正则表达式规则:https://laravel.com/docs/master/validation#rule-regex

    'max_debit' => [
        'required',
        'max:9',
        'regex:/^(([0-9]*)(\.([0-9]+))?)$/',
    ],
    

    使用max,您最多可以定义 9 个字符。 如果要限制句点后的位数,可以添加 {0,2} 组,其中 0 代表零位,2 代表句点后最多 2 位:

    /^(([0-9]*)(\.([0-9]{0,2}+))?)$/
    

    根据这个答案回答:https://stackoverflow.com/a/23059703/6385459

    这就是你要找的吗?

    【讨论】:

      【解决方案2】:

      您可以使用 max:9(最大数值)或在 laravel 中使用自定义角色

      【讨论】:

      • 虽然这个答案是正确的,但这并不是作者所要求的。请记住仔细阅读作者的问题。
      猜你喜欢
      • 2020-12-23
      • 2019-08-09
      • 2014-04-06
      • 1970-01-01
      • 2015-02-21
      • 2017-07-09
      • 1970-01-01
      • 2012-03-08
      • 2017-12-01
      相关资源
      最近更新 更多