Hoy voy a mostrarte una función de JavaScript para saber si una cadena o carácter es un dígito, es decir, un número del 0 al 9. Para ello vamos a usar el código ASCII y la función charCodeAt.

Al final tendremos una función que nos permitirá saber si un carácter de JavaScript es un dígito, la cual funciona del lado del cliente y del servidor.

Voy a basarme en el funcionamiento de isalpha del buen C.

Función que dice si es un dígito en JavaScript

La función recibe una cadena. Obtiene el código ASCII y devuelve un booleano (true o false) indicando si la cadena es un dígito. Cabe mencionar que si la cadena tiene más de un carácter, solo el primero será tomado en cuenta.

/**
 * Saber si carácter es dígito con JavaScript
 * 
 * https://parzibyte.me/blog/
 * 
 */
const esDigito = (caracter) => {
	let ascii = caracter.charCodeAt(0);
	return ascii > 47 && ascii < 58;
}

Si el código ASCII va desde el 48 hasta el 57 entonces es un dígito del 0 al 9. Recuerda que estamos usando funciones flecha.

Probar función que dice si string es dígito en JS

Ahora veamos unas pruebas de esta función. Defino un arreglo de caracteres y por cada uno pruebo a la función:

/**
 * Saber si carácter es dígito con JavaScript
 * 
 * https://parzibyte.me/blog/
 * 
 */
const esDigito = (caracter) => {
	let ascii = caracter.charCodeAt(0);
	return ascii > 47 && ascii < 58;
}

// Probar
const caracteres = ["A","B","0","4","_","9", " "];
caracteres.forEach(caracter => {
	console.log("¿'%s' es dígito? %s", caracter, esDigito(caracter));
});

/*
Salida:
¿'A' es dígito? false
¿'B' es dígito? false
¿'0' es dígito? true
¿'4' es dígito? true
¿'_' es dígito? false
¿'9' es dígito? true
¿' ' es dígito? false
*/

Como ves, la salida es correcta y el algoritmo cumple con su función. Por cierto, como lo dije al inicio, esta función trabaja en el lado del cliente y del lado del servidor con Node.

También te invito a ver más sobre JavaScript en mi blog.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto