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;
}
55
Author: John Conde, 2012-07-10
5 answers
ctype_digit
был построен именно для этой цели.
Я использую
if(is_numeric($value) && $value > 0 && $value == round($value, 0)){
Для проверки, является ли значение числовым, положительным и целым
Мне не очень нравится ctype_digit, так как он не так читаем, как "is_numeric", и на самом деле имеет меньше недостатков, когда вы действительно хотите проверить, что значение числовое.
30
Author: Mathieu Dumoulin, 2016-01-27 14:30:47
$options = array(
'options' => array('min_range' => 0)
);
if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) {
// you're good
}
15
Author: John Conde, 2012-07-10 17:19:49
return ctype_digit($num) && (int) $num > 0
6
Author: rdlowrey, 2012-07-11 07:35:48
Для 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";
}
?>
5
Author: MD. Shafayatul Haque, 2018-09-29 10:52:47