Подтвердить что ты не робот

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Пояснение:

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

Ответ 3

Вы можете попробовать следующее:

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

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

Ответ 4

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

Ответ 5

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

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);
    }
}