Laravel 验证十进制 0-99.99

Laravel validate decimal 0-99.99

Laravel 没有 decimal 的验证,所以我需要 regex 或其他验证方法来验证 0 - 99.99[=19= 的数值]

我试过了

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 时得到 "invalid format" 或 preg_match

的未知修饰符

任何有关 regex 验证 laravel 中的小数所需的帮助都值得赞赏(在小数点之前或之后有可选值

Laravel between 验证规则实际上非常强大,也可以处理小数值。所以没有必要使用正则表达式只是这样做:

'required|between:0,99.99'

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

function rules(){

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

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

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

这对我有用:

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

如果您想自定义消息,则:

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

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

required|gte:0|lte:99

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

        ]);