Я знаю, что это может звучать как действительно фиктивный вопрос, но я пытаюсь обеспечить, чтобы предоставленная строка имела число / десятичный формат, чтобы использовать ее позже с функцией 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); } }