我正在寻找一种方法,可以让我检查我的系统中的有效ID。
他们的定义是:
肯定的,不是0,
一个整数,但可能大于整数
以字符串或数字形式出现
我想知道你认为最优雅的方法是什么。不合格的候选人有:is_int()
,因为它对负数有效,并且由于整数大小限制is_numeric()
,因为它对float是有效的,或者说,它的指数部分是这样的+0123.45e6ctype_digit()
将输入转换为字符串,因为这将是有效的:“0000”
我已经决定了:
preg_match('/^[1-9][0-9]*$/',(string)$id);
有人能想出别的办法吗?
最佳答案
使用filter_var尝试FILTER_VALIDATE_INT函数。对于有效的整数,您可以指定范围。可能与大小限制有相同的限制,但为此,您必须构建一个完全满足您要求的自定义函数。