Laravel 验证小数 0-99.99

问题描述 投票:0回答:7

Laravel 没有对

decimal
进行验证,因此我需要
regex
或其他验证方法来验证
0 - 99.99

的数值

我已经尝试过

required|regex:^\d{0,2}(\.\d{1,2})?$/
required|regex:[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]
required|regex:/[1-9]\d?(\.\d\d?)?|0\.[1-9]\d?||0\.0[1-9]/
required|regex:/[\d]{2}.[\d]{2}/
required|regex:/[\d]{0-2}.[\d]{0,2}/

我在尝试输入

0.05
时收到“无效格式”或未知的
preg_match
修饰符

任何关于验证

regex
中的小数所需的
laravel
的帮助都值得赞赏(小数点之前或之后的可选值

regex validation laravel-5 decimalformat
7个回答
131
投票

规则之间的 laravel(5?) 总是让它必须解析小数,您必须向其添加数字才能正确验证

'required|numeric|between:0,99.99',

101
投票

Laravel

between
验证规则实际上非常强大,也可以处理十进制值。所以不需要使用正则表达式,只需这样做:

'required|between:0,99.99'

17
投票

这对我有用:

 function rules(){'field' => ['required','numeric', 'min:1','max:99.99', 'regex:/^\d+(\.\d{1,2})?$/']}

如果您想自定义消息,那么:

public function messages()
   {
       return [
        'field.regex' => 'custom your message'
      ];
   }

6
投票

这适用于允许两位小数精度的数字:

function rules(){

   return [
   'field_name'=> array('regex:/^(?:d*.d{1,2}|d+)$/','min:1','max:10')
        ]; 
}

1
投票

这适用于带小数和不带小数的数字:

必需|gte:0|lte:99


0
投票

从 laravel 10 开始,您可以通过以下方式进行验证:

// Must have exactly two decimal places (9.99)...
'price' => 'decimal:2'
 
// Must have between 2 and 4 decimal places...
'price' => 'decimal:2,4'

文档在这里


-4
投票
 validate()->make([
            'min_commission' => 'required_with:end_page|numeric|min:0|max:0',
            'max_commission' => 'required_with:end_page|numeric|min:0|max:99',

        ]);
© www.soinside.com 2019 - 2024. All rights reserved.