【发布时间】:2012-07-10 05:35:59
【问题描述】:
检查输入是否为数字的最佳方法是什么?
- 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;
}
【问题讨论】:
-
不要在代码的第一行创建 (int) !将其转换为 (string) 然后使用带有 ctype_digit($num) 的字符串会比 int(proff in manual php.net/ctype_digit) 做得更好!!!
标签: php input validation numeric