PHP:检查输入是否为有效数字的最佳方法?

2022-08-30 08:23:44

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

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

答案 1

ctype_digit正是为此目的而建造的。


答案 2

我使用

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

验证值是否为数字、正数和整数

http://php.net/is_numeric

我真的不喜欢ctype_digit因为它不像“is_numeric”那样可读,并且当你真的想验证一个值是数字时,它实际上有更少的缺陷。


推荐