Регулярное выражение PHP – только номер фильтра

Я знаю, что это может звучать как действительно фиктивный вопрос, но я пытаюсь обеспечить, чтобы предоставленная строка имела число / десятичный формат, чтобы использовать ее позже с функцией number_format () PHP.

Как бы я это сделал – скажем, кто-то вводит 15:00 в текстовое поле – какое регулярное выражение и функцию php следует использовать для удаления двоеточия из него и заставить его возвращать только действительные символы.

preg_match () возвращает массив – поэтому я не могу передать результат в number_format (), если я не буду имподировать () или что-то вроде этого.

Ваша помощь будет очень оценена.

Использование is_numeric или intval , вероятно, лучший способ проверить число здесь, но чтобы ответить на ваш вопрос, вы можете попробовать вместо этого использовать preg_replace . В этом примере удаляются все нечисловые символы:

 $output = preg_replace( '/[^0-9]/', '', $string ); 

Чтобы удалить все, что не является числом:

 $output = preg_replace('/[^0-9]/', '', $input); 

Объяснение:

  • [0-9] соответствует любому числу от 0 до 9 включительно.
  • ^ отрицает шаблон [] .
  • Таким образом, [^0-9] сопоставляет все, что не является числом, и поскольку мы используем preg_replace , они будут заменены ничем '' (второй аргумент preg_replace ).

Вы можете попробовать это:

 $string = preg_replace('/[^0-9]/', '', $string); 

Приветствия.

используйте встроенную функцию php is_numeric чтобы проверить, является ли значение числовым.

Вы можете сделать что-то подобное, если хотите только целые числа.

 function make_whole($v){ $v = floor($v); if(is_numeric($v)){ echo (int)$v; // if you want only positive whole numbers //echo (int)$v = abs($v); } }