Pruebe el nativo Filter function *
filter_var($value, FILTER_VALIDATE_INT, array(
'options' => array('min_range' => 1)
));
* si solo desea asegurarse de que la cadena de entrada consiste en una secuencia de dígitos de longitud arbitraria, use una expresión regular con [0-9] o [\ d +]
Ejemplos con filter_var
:
var_dump(filter_var(1, FILTER_VALIDATE_INT)); // int(1)
var_dump(filter_var('1', FILTER_VALIDATE_INT)); // int(1)
var_dump(filter_var('+10', FILTER_VALIDATE_INT)); // int(10)
var_dump(filter_var(.1, FILTER_VALIDATE_INT)); // bool(false)
var_dump(filter_var('.1', FILTER_VALIDATE_INT)); // bool(false)
var_dump(filter_var(-1, FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1)))); // bool(false)
var_dump(filter_var('-1', FILTER_VALIDATE_INT,
array('options' => array('min_range' => 1)))); // bool(false)
var_dump(filter_var('2147483648', FILTER_VALIDATE_INT)); // bool(false)
var_dump(filter_var('0xFF', FILTER_VALIDATE_INT)); // bool(false)
var_dump(filter_var(0xFF, FILTER_VALIDATE_INT)); // int(255)
* (relacionado) * http://stackoverflow.com/questions/2524680/check-whether-the-string-is-a-unix-timestamp/2524761#2524761 – Gordon
¿qué debería devolver por "+3928742938749283479823749283749"? – user187291
@stereofrog: la validación de la longitud del cuadro de texto puede bloquearlo por este valor en mi aplicación :) – NAVEED