Compruebe si Sring es un número en JavaScript
-
Use la función
isNaN()
para comprobar si una cadena dada es un número o no en JavaScript -
Utiliza el operador
+
para comprobar si una cadena dada es un número o no en JavaScript -
Utiliza la función
parseInt()
para comprobar si una cadena dada es un número o no en JavaScript -
Utiliza la función
Number()
para comprobar si una cadena dada es un número o no en JavaScript - Utiliza las expresiones regulares para comprobar si una cadena dada es un número o no en JavaScript
El número en el lenguaje de programación es el tipo de dato que denota enteros, flotantes, etc. Las cadenas representan todos los caracteres en lugar de solo valores numéricos. Las cadenas pueden contener valores numéricos.
En este artículo, vamos a comprobar si una cadena dada es un número o no.
Use la función isNaN()
para comprobar si una cadena dada es un número o no en JavaScript
La función isNaN()
significa no es un número
. Es una función incorporada de JavaScript utilizada para determinar si un valor dado no es un valor numérico, lo cual incluye tanto números reales como cadenas numéricas.
La función isNaN()
devuelve true
si el valor no es un número y false
si es un número o se puede convertir en un número válido.
Aquí está la sintaxis básica de la función isNaN()
:
isNaN(value)
valor
: El valor que deseas comprobar si es un número. Puede ser una variable, constante o una expresión.
Ejemplo:
console.log(isNaN('195'))
console.log(isNaN('boo'))
console.log(isNaN('100px'))
Resultado:
false
true
true
Si queremos crear una función que devuelva true
para un valor válido, siempre podemos hacerlo creando una función que niegue la salida de la función isNaN()
.
function isNum(val) {
return !isNaN(val)
}
console.log(isNum('aaa'));
console.log(isNum('13579'));
console.log(isNum('-13'));
Resultado:
false
true
true
Ahora esta función llamada esNumero()
devolverá true
para un valor numérico válido.
Manejo de cadenas numéricas con decimales
La función isNaN()
es versátil y también puede manejar cadenas numéricas con puntos decimales. Por ejemplo:
const cadena = '3.14'; // La cadena que queremos comprobar
const esNumerico = isNaN(cadena);
if (esNumerico) {
console.log(`${cadena} NO es un número.`);
} else {
console.log(`${cadena} es un número.`);
}
La salida identificará correctamente '3.14'
como un número:
3.14 is a number.
Utiliza el operador +
para comprobar si una cadena dada es un número o no en JavaScript
El operador +
en JavaScript tiene un doble propósito: puede ser utilizado para la adición aritmética y como operador unario para la coerción de tipos.
Cuando se aplica a cadenas, el operador +
intenta convertirlas en valores numéricos. Si la cadena se puede convertir con éxito en un número, el resultado será un valor numérico válido; de lo contrario, resultará en NaN
(No es un número).
Por ejemplo:
console.log(+'195')
console.log(+'boo')
Resultado:
195
NaN
Utiliza la función parseInt()
para comprobar si una cadena dada es un número o no en JavaScript
El método parseInt()
en JavaScript se utiliza para analizar una cadena y convertirla en un número entero (un número entero). Lee la cadena de izquierda a derecha hasta que encuentre un carácter que no sea una parte válida de un número entero y luego deja de analizar.
Aquí está la sintaxis básica para utilizar parseInt()
:
parseInt(string[, radix]);
cadena
: La cadena que se va a analizar y convertir en un número entero.base
(opcional): Un número entero entre 2 y 36 que representa la base del sistema numérico utilizado en la cadena. Este parámetro es opcional y, si se omite, JavaScript asume la base 10 (decimal).
Devuelve NaN cuando no puede extraer números de la cadena.
Por ejemplo:
console.log(parseInt('195'))
console.log(parseInt('boo'))
Resultado:
195
NaN
Manejo de cadenas numéricas con base
El método parseInt()
también te permite especificar la base (base) del sistema numérico utilizado en la cadena. Por ejemplo, puedes analizar números binarios (base 2), octales (base 8) o hexadecimales (base 16).
Aquí hay un ejemplo de análisis de una cadena hexadecimal:
const cadenaHex = '1A'; // Cadena hexadecimal
const valorEntero = parseInt(cadenaHex, 16); // Especifica la base 16
if (isNaN(valorEntero)) {
console.log(`${cadenaHex} NO es un número.`);
} else {
console.log(`${cadenaHex} es un número.`);
}
En este caso, la salida identificará correctamente '1A'
como un número hexadecimal:
1A is a number.
Utiliza la función Number()
para comprobar si una cadena dada es un número o no en JavaScript
La función Number()
convierte el argumento en un número que representa el valor del objeto. Si no puede convertir el valor en un número, devuelve NaN.
Podemos utilizarlo también con cadenas para comprobar si una cadena dada es un número o no.
Por ejemplo,
console.log(Number('195'))
console.log(Number('boo'))
Resultado:
195
NaN
Utiliza las expresiones regulares para comprobar si una cadena dada es un número o no en JavaScript
Una expresión regular, a menudo conocida como regex, es un patrón que especifica un conjunto de cadenas. Se puede utilizar para la coincidencia de patrones dentro de cadenas, lo que lo convierte en una herramienta versátil para tareas como la validación de cadenas.
En JavaScript, puedes crear expresiones regulares utilizando tanto el constructor RegExp
como la notación literal de regex entre barras, como /patrón/
.
Podemos usar estos patrones para verificar si una cadena contiene un número o no.
Primero, necesitamos definir un patrón de expresión regular que coincida con valores numéricos. Podemos crear un patrón sencillo que coincida con enteros positivos y negativos, así como números de punto flotante:
const numberPattern = /^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$/;
Esto es lo que hace este patrón:
^
: Asegura el comienzo de la cadena.[-+]?
: Coincide con un signo positivo o negativo opcional.[0-9]*
: Coincide con cero o más dígitos antes del punto decimal.\.?
: Coincide con un punto decimal opcional.[0-9]+
: Coincide con uno o más dígitos después del punto decimal.([eE][-+]?[0-9]+)?
: Coincide con una parte exponencial opcional, comoe-3
oE+4
.
Ahora, aplica el método test()
del patrón de expresión regular a la cadena. El método test()
devuelve true
si la cadena coincide con el patrón y false
en caso contrario:
const isNumber = numberPattern.test(str);
Por ejemplo,
function isNumeric(val) {
return /^-?\d+$/.test(val);
}
console.log(isNumeric('aaa'));
console.log(isNumeric('13579'));
console.log(isNumeric('-13'));
Salida:
false
true
true