Laravel validate decimal 0-99.99

Laravel не имеет проверки для decimal, поэтому мне нужно regex или другой метод проверки для проверки числового значения 0 - 99.99

Я пробовал

required|regex:^d{0,2}(.d{1,2})?$/
required|regex:[1-9]d?(.dd?)?|0.[1-9]d?||0.0[1-9]
required|regex:/[1-9]d?(.dd?)?|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 оценивается (с необязательными значениями до или после decimal

3 ответов


На Что Laravel between правило проверки на самом деле довольно мощное и может обрабатывать десятичные значения. Поэтому нет необходимости использовать regex просто сделайте это:

'required|between:0,99.99'

на что Laravel(5?) между правилом всегда есть разбор десятичного знака, вы должны добавить к нему числовое значение для правильной проверки

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

это будет работать для числа с точностью до двух десятичных знаков:

function rules(){

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