Intereting Posts
LAST_INSERT_ID (), как он работает в среде с несколькими пользователями PHP mysql_real_escape_string () -> stripslashes (), оставляющий множественные слэши Json data Match Fixtures Group по номеру пула Yii2: Как поместить нулевые значения в конец списка объектов при сортировке по возрастанию? Получение валютного символа из кода валюты Как проверить любое значение массива в другом массиве php? Есть ли в PHP эквивалентный класс JQuery DOM-манипулятора / CSS-селектора? неразрывное пространство utf-8 0xc2a0 и preg_replace странное поведение CakePHP и сокет suphp, сброс соединения с помощью одноранговой сети Ошибка подключения MySQLI Laravel 4 Отношения между мужчинами и женщинами случайная ошибка symfony: ContextErrorException: Warning: simplexml_load_file (): предупреждение ввода-вывода: не удалось загрузить внешний объект Сообщение об ошибке PDO? Объединение нескольких массивов по индексу Идентификатор сеанса загрузки файла JQuery

PHP: Лучший способ проверить, является ли ввод допустимым числом?

Каков наилучший способ проверить, является ли ввод числовым?

  • 1-
  • +111+
  • 5xf
  • 0xf

Эти номера не должны быть действительными. Только цифры: 123, 012 (12), положительные числа должны быть действительными. Это текущий текущий код:

$num = (int) $val; if ( preg_match('/^\d+$/', $num) && strval(intval($num)) == strval($num) ) { return true; } else { return false; } 

ctype_digit был построен именно для этой цели.

я использую

 if(is_numeric($value) && $value > 0 && $value == round($value, 0)){ 

для проверки, является ли значение числовым, положительным и интегральным

http://php.net/is_numeric

Мне не нравится ctype_digit, поскольку он не читается как «is_numeric» и на самом деле имеет меньше недостатков, когда вы действительно хотите проверить, что значение является числовым.

filter_var()

 $options = array( 'options' => array('min_range' => 0) ); if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) { // you're good } 
 return ctype_digit($num) && (int) $num > 0 

Для PHP версии 4 или более поздней версии:

 <?PHP $input = 4; if(is_numeric($input)){ // return **TRUE** if it is numeric echo "The input is numeric"; }else{ echo "The input is not numeric"; } ?>