Как отфильтровать десятичный ввод в PHP и очистить его

Я хочу отфильтровать вводимые пользователем десятичные значения и разрешить запятые и точки.

Я использую следующий кусок кода для достижения этой цели:

$user_input = round(filter_input(INPUT_POST, 'test', FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION|FILTER_FLAG_ALLOW_THOUSAND),2);

С первым фильтром все работает нормально, если я ввожу десятичные значения с точками, но если я ввожу десятичное значение с запятыми, функция удаляет запятую и десятичную часть тоже.
Может ли кто-нибудь помочь мне? Спасибо

1

Решение

Для этого вы можете использовать регулярные выражения, например:

preg_match_all('/^(\d+(?:[\.\,]\d{1,})?)$/', $input, $output);

В переменной $ output вы получите результаты. Если вывод неправильный, вы просто получите пустой массив.

Чтобы увидеть, как работает метод preg_match_all, перейдите сюда:
http://php.net/manual/es/function.preg-match-all.php

А чтобы узнать больше о регулярных выражениях, перейдите сюда:
http://php.net/manual/es/reference.pcre.pattern.syntax.php

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]