Десятичная проверка + PHP?
Как сделать проверку десятичных чисел в PHP?
:)
(десятичная точка необязательна) он должен принять ... Ноль , Один , Два , 0,123 , 0,2 , 12.34 и т. д.
4 ответа:
Ответы для английского языка уже были опубликованы. Числоформат ::parse () позаботится о других локалях, если вам нужно такое поведение:
$formatter = new NumberFormatter('de-DE', NumberFormatter::PATTERN_DECIMAL); if ($formatter->parse($value) !== false) { # A correct numeric value in german locale, like '12.345,00001' }
Use is_float...
Предложенный is_float/is_numeric не будет работать, потому что is_float не принимает параметры запроса (которые являются строками), А is_numeric примет что-то вроде "+.1e0 " это не то, что вы хотите. Надежный способ-использовать регулярное выражение для проверки, например
$is_decimal = preg_match('/^\d+(\.\d+)?$/', $some_string);
Выражение может меняться в зависимости от ваших потребностей. Например, выше будет также приниматься "000.00" или "111111111111111".