javascript - validar - Comprueba que la variable es un número.
¿Cómo puedo verificar que una variable es un número, ya sea un número entero o un dígito de cadena?
En PHP podría hacer:
if (is_int($var)) {
echo ''$var is integer'';
}
O:
if (is_numeric($var)) {
echo ''$var is numeric'';
}
¿Cómo puedo hacerlo en jQuery / JavaScript?
Deberías usar
Una forma sencilla de verificar si el valor dado es número usando "if condition"
function isInteger(value)
{
num=value.trim();
return !(value.match(//s/g)||num==""||isNaN(num)||(typeof(value)==''number'');
}
devolverá verdadero si el valor que estamos pasando es un entero.
solved for
value="" //false null
value="12" //true only integers
value="a" //false
value=" 12" //false
value="12 " //false
value=" " //false space
value="$12" //false special characters
value="as12" //false
Deberías usar:
if(Number.isInteger(variable))
alert(variable+variable);
else
alert("It is not a integer");
Puede encontrar la referencia en: Number.isInteger()
Deberías usar:
var x = 23;
var y = 34hhj;
isNaN(x);
isNaN(y);
Devolverá verdadero si su cadena y falso si es un número.
La función javascript isNaN(variable)
debería hacer el truco. Devuelve true si los datos no son un número.
Soy bastante nuevo en javascript pero parece que typeof(blah)
te permite verificar si algo es un número (no dice verdad para las cadenas). Sabía que el OP pedía cadenas + números, pero pensé que valdría la pena documentarlo para otras personas.
p.ej:
function isNumeric(something){
return typeof(something) === ''number'';
}
Aquí están los documentos
Y aquí hay algunas ejecuciones de consola de lo que produce typeof:
typeof(12);
"number"
typeof(null);
"object"
typeof(''12'');
"string"
typeof(12.3225);
"number"
una ligera rareza de la que soy consciente es
typeof(NaN);
"number"
pero no sería javascript sin algo así, ¿verdad?
Tenga en cuenta que las cadenas vacías ''''
y '' ''
serán consideradas como números por isNaN
e isFinite
.
Ver es isNan
EDITAR: Por favor, mire lo que Christoph ha sugerido anteriormente. Tiene sentido usar isFinite como se sugiere.
Yo iria con
isFinite(String(foo))
Vea esta respuesta para una explicación de por qué. Si solo quieres aceptar valores enteros, mira aquí .
function isNumeric( $probe )
{
return parseFloat( String( $probe ) ) == $probe;
}