Из документации Symfony нет встроенного валидатора для десятичных дробей.Вы могли бы использовать валидатор обратного вызова или, что еще лучше, вы могли бы создать свой собственный валидатор, как в этой статье , описанной здесь .
Что касается фактической проверки, я бы использовал комбинацию is_numeric
и is_float
для проверки.Существуют методы, использующие регулярное выражение, но, по моему мнению, если значение удовлетворяет проверке is_numeric
или is_float
, то можно смело предположить, что это действительное десятичное число (или целое число).
РЕДАКТИРОВАТЬ:
Возможно, лучшим решением было бы проверить десятичность в виде строки.Что-то вроде ...
$stringDecimal = strval($decimalValue);
return (preg_match(/[0-9]+(\.[0-9][0-9]?)?/, $stringDecimal) !== 0);
Хотя это не идеально (вы могли бы легко передать '1.15adowadjaow', и это подтвердило бы), оно служит основой того, что вы ищете.Объединение приведенного выше регулярного выражения с чем-то, что ищет что-то кроме 0-9, fullstop или запятой (в зависимости от того, хотите ли вы использовать европейское десятичное форматирование).