Laravel validate decimal 0-99.99

2019-04-19 02:58发布

问题:

Laravel does not have a validation for decimal, so I need a regex or other validation method to validate a numeric value of 0 - 99.99

I have tried

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}/

I am either getting "invalid format" when trying to enter 0.05 or unknown modifiers for preg_match

any help with the regex needed to validate a decimal in laravel is appreciated (with optional values before or after decimal

回答1:

The Laravel between validation rule is actually pretty powerful and can handle decimal values as well. So there's no need to use regex just do this:

'required|between:0,99.99'


回答2:

The laravel(5?) between rule does always get it has to parse a decimal, you have to add numeric to it to validate correctly

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


回答3:

this will work for number allowing two decimal precision:

function rules(){

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