> Manuales > Taller de Javascript

Una serie de funciones de Javascript para realizar validaciones que nos permiten comprobar el contenido de cadenas de texto. Nos servirá para practicar con algunos métodos de los de string de Javascript.

Funciones para validación alfanumérica de strings en Javascript

He creado una serie de funciones de string para realizar unas comprobaciones sobre cadenas de caracteres, que voy a utilizar más adelante en un script más complejo. Comienzo explicando estas funciones sueltas, que quizás sirvan de utilidad a los lectores. También con la intención de presentar poco a poco la complejidad de mi objetivo final. Las funciones de validación de strings sirven para saber si las cadenas tienen o no números, letras, letras mayúsculas y minúsculas. Son una serie de funciones bien sencillas y parecidas entre si, que hacen uso de los métodos de la clase string de Javascript.

Estas funciones simplemente hacen el recorrido por el string en búsqueda de caracteres de un determinado tipo. Hacen el recorrido completo por todo el string hasta que encuentran un carácter del tipo buscado, de modo que se pueda saber seguro si hay o no caracteres de ese tipo. Veremos a continuación las distintas funciones:

Saber si el string contiene caracteres numéricos

Esta función recibe un string y devuelve 1 si se encuentran caracteres numéricos y 0 si no se encuentran.

var numeros="0123456789";

function tiene_numeros(texto){
   for(let i=0; i < texto.length; i++){
      if (numeros.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

Leyendo este código con el paso d elos años habría que cambiar el nombre de las funciones, para que se ajustasen a la convención de la comunidad. tiene_numeros debería ser mejor tieneNumeros. Incluso mejor, lo típico sería ponerlo ene inglés. No voy a cambiar las funciones porque dependen del artículo siguiente, dond las vamos a usar. Otra cosa que podría ser interesante es poner las variables locales a la función. Aunque si usamos módulos Javascript no habría tanto problema por tener variables de ámbito global.

Hemos creado primero una variable global con los números posibles, del 0 al 9, que queremos buscar. Esa variable la utilizaremos dentro de la función.

La función hace un recorrido a todos los caracteres del string. Para cada uno se comprueba si está o no dentro de la variable numeros, creada con anterioridad.

Si estaba, se devuelve 1 (como se ejecuta el return, se sale de la función devolviendo el valor 1).

Si no estaba, entonces se hará el recorrido del string, carácter a carácter, hasta el final. Entonces se termina el bucle y se devuelve 0.

Esta función se puede probar con estas sentencias:

alert(tiene_numeros("ASAS1"));
alert(tiene_numeros("2asasasas"));
alert(tiene_numeros("asas2sG"));
alert(tiene_numeros("a...."));
alert(tiene_numeros("A22323G2.12"));

Saber si un string contiene letras

Veamos una función muy similar, para saber si un string contiene un carácter que sea letra, valiendo tanto las mayúsculas como minúsculas.

var letras = "abcdefghyjklmnñopqrstuvwxyz";

function tiene_letras(texto){
   texto = texto.toLowerCase();
   for(let i=0; i<texto.length; i++){
      if (letras.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

El algoritmo es prácticamente el mismo que la función anterior. Primero hemos creado un string con todas las letras del alfabeto. Luego hacemos un recorrido buscando en cada uno de los caracteres del string recibido por parámetro una de las letras del alfabeto.

La única particularidad es la llamada al método toLowerCase(), para convertir el texto que se recibe por parámetro a minúsculas y así que la búsqueda de letras no tenga en cuenta si son minúsculas o mayúsculas (ya que sólo buscamos si el string contiene letras).

Podemos probar el string con estas líneas de código:

alert(tiene_letras("1"));
alert(tiene_letras("22323232s"));
alert(tiene_letras("22323232sf"));
alert(tiene_letras("a2232323"));
alert(tiene_letras("A22323G2.12"));

Saber si un string tiene letras minúsculas

Aquí vemos la función para comprobar si un string tiene caracteres en minúsculas. Es muy parecida a las que hemos visto anteriormente.

var letras = "abcdefghyjklmnñopqrstuvwxyz";

function tiene_minusculas(texto){
   for(let i=0; i<texto.length; i++){
      if (letras.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

Con su batería de pruebas:

alert(tiene_minusculas("1"));
alert(tiene_minusculas("22323232s"));
alert(tiene_minusculas("22323232sf"));
alert(tiene_minusculas("a2232323"));
alert(tiene_minusculas("A22323G2.12"));

Comprobar si un string tiene letras mayúsculas

Ahora veremos la función para ver si un string tiene letras mayúsculas. Es igual que la anterior, simplemente que tenemos una cadena con todas las letras en mayúscula para buscar en el texto recibido por parámetro.

var letras_mayusculas = "ABCDEFGHYJKLMNÑOPQRSTUVWXYZ";

function tiene_mayusculas(texto){
   for(let i=0; i<texto.length; i++){
      if (letras_mayusculas.indexOf(texto.charAt(i),0)!=-1){
         return 1;
      }
   }
   return 0;
}

Estas podrían ser las pruebas para comprobar el funcionamiento.

alert(tiene_mayusculas("1"));
alert(tiene_mayusculas("22323232s"));
alert(tiene_mayusculas("22323232sG"));
alert(tiene_mayusculas("a2232323"));
alert(tiene_mayusculas("A22323G2.12"));

Estas funciones las utilizaremos en el siguiente artículo, en el que voy a explicar la creación de un sistema para mostrar la seguridad de una clave, para decir qué tan segura es en función del número de caracteres, si tiene números y letras, si tiene mayúsculas y minúsculas, etc.

Miguel Angel Alvarez

Fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Com...

Manual