PHP:最好的方法来检查input是否是一个有效的数字?
检查input是数字的最好方法是什么?
- 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; }
ctype_digit
正是为此目的而构build的。
我用
if(is_numeric($value) && $value > 0 && $value == round($value, 0)){
validation一个值是否是数字,正数和整数
我不太喜欢ctype_digit,因为它不像“is_numeric”那样可读,而且当你确实想要validation一个值是数字的时候,它实际上有更less的缺陷。
filter_var()
$options = array( 'options' => array('min_range' => 0) ); if (filter_var($int, FILTER_VALIDATE_INT, $options) !== FALSE) { // you're good }
return ctype_digit($num) && (int) $num > 0
对于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"; } ?>