PHP:最好的方式来检查,如果输入的是一个有效的数字?(PHP: Best way to check

2019-06-26 04:19发布

什么是检查是否输入数字的最佳方式?

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

这些类型的数字不应该是有效的。 只有数字,如:123,012(12),正数应该是有效的。 这是MYE当前的代码:

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

Answer 1:

ctype_digit是正是专为这一目的。



Answer 2:

我用

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

验证,如果值是数字的,积极的和积分

http://php.net/is_numeric

我真的不喜欢ctype_digit其没有可读的“is_numeric”,实际上有较少的缺陷,当你真的想验证一个值是数字。



Answer 3:

filter_var()

$options = array(
    'options' => array('min_range' => 0)
);

if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) {
 // you're good
}


Answer 4:

return ctype_digit($num) && (int) $num > 0


Answer 5:

对于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";
}
?>


Answer 6:

最安全的方法

if(preg_replace('/[0-9\.\-]/', '', $value) == ""){
  //if all made of numbers "-" or ".", then yes is number;
}


文章来源: PHP: Best way to check if input is a valid number?