Expresiones regulares en programación: ejemplos prácticos para JavaScript

4 min lectura
Desarrolladores / 11 agosto 2016
Expresiones regulares en programación: ejemplos prácticos para JavaScript
Expresiones regulares en programación: ejemplos prácticos para JavaScript

BBVA API Market

Aprender a programar significa, entre muchos otros detalles, memorizar expresiones y pasos que permiten ejecutar acciones simples y prácticas. Se podría alcanzar un símil comprensible con los típicos atajos de teclado: con una sencilla combinación de teclas uno es capaz de acceder al explorador, cerrar el navegador, buscar un programa… En algunos lenguajes de programación, las expresiones regulares sirven para detectar patrones en distintas cadenas de texto. Para los programadores, esas expresiones regulares facilitan su labor en un solo paso. 

Un ejemplo muy sencillo es la comprobación vía expresión regular que los datos rellenados por los usuarios en un formulario son correctos o no. Alguien puede utilizar un breve formulario para recabar el nombre, los apellidos y el teléfono de contacto de sus clientes, y que algunos de ellos no cumplimenten bien este ultimo campo. La forma rápida de comprobarlo es a través de una expresión regular. Los desarrolladores acostumbrados a utilizar Perl para sus proyectos conocen a la perfección estas herramientas para alcanzar objetivos mediante sencillos atajos.

De todas formas los programadores de Perl no son los únicos desarrolladores que pueden aprovecharse de las ventajas de las expresiones regulares. Los profesionales JavaScript también pueden disfrutar de estas expresiones regulares, concretamente para hacer comprobaciones determinadas en las distintas cadenas de texto a partir de un patrón que se puede resumir en una expresión abierta. También se utilizan en herramientas de analíticas como Google Analytics.

Así se utilizan las expresiones regulares en JavaScript

Una expresión regular usa caracteres y metacaracteres para definir, de forma abierta, patrones concretos en cadenas de texto. Esos caracteres, combinados unos con otros de forma especial, permiten extraer patrones o elementos concretos de esa cadenas para buscar o manipular el texto (identificadores, correos electrónicos…). En el caso de JavaScript, hay dos tipos de expresiones regulares:

●      Expresiones regulares mediante una cadena literal para encontrar un patrón: para ello se usa el constructor de objeto RegExp. Para crear un literal RegExp se utiliza esta expresión: var re = /regular expression/;. El patrón de expresión regular se encuentra entre la apertura y el cierre de las barras diagonales, una estructura que suele ser habitual y obligatoria.

●      Expresiones regulares de aplicación en varias cadena: expReg.test(cadena). Si existe coincidencia, se devuelve true; y si no existe una coincidencia ente la expresión y un posible patrón, se devuelve false.

Algunos elementos esenciales para hacer expresiones regulares en JavaScript:

●      ^: el emparejamiento se debe realizar desde el principio de la cadena.

●      [A-Z]: cualquier carácter entre la A mayúscula y la Z mayúscula.

●      {1,2}: uno o dos caracteres.

●      \s: un espacio en blanco.

●      \d: un dígito.

●      {4}: cuatro dígitos.

●      \s: un espacio en blanco.

●      ([B-D]|[F-H]|[J-N]|[P-T]|[V-Z]): cualquier carácter entre la B mayúscula y la Z mayúscula, excepto las vocales.

●      {3}: tres caracteres.

●      $: el emparejamiento se debe realizar hasta el final de la cadena.

Casos concretos de uso de expresiones regulares

Es habitual usar expresiones regulares para detectar si existe una secuencia concreta de letras o palabras o bien números en una cadena determinada. Para conseguir eso sólo es necesario utilizar una expresión regular simple:

var reg = /javascript/;
 “Esto es lenguaje javaScript”.match(reg);
 // devuelve un array de un elemento [“javascript”]
porque dentro de la cadena se encuentra un elemento con esa secuencia concreta de letras. En el caso de que no existiera la palabras “javaScript” dentro de la cadena, devolvería un elemento null.

A veces se utiliza el elemento if para buscar coincidencias true o false a partir de una combinación de caracteres y palabras (expresiones) en una cadena completa:

if (“Esto es lenguaje javaScript”.match(/javascript/) {
    // Se devolverá true porque si existe el elemento javaScript en la cadena.
 }
 if (“Esto es lenguaje Objective-C”.match(/javascript/) {
    // Se devuelve false porque no existe el elemento javaScript en la cadena.
 }

Usando el elemento vinculado a la búsqueda de dígitos, las expresiones regulares se pueden utilizar para comprobar si una cadena tiene algún digito concreto, incluso programar expresiones regulares para detectar combinaciones o también repeticiones de una serie de dígitos dentro de una o varias cadenas de texto:

–       Búsqueda de un dígito concreto en una cadena de texto: en este caso especial el programador busca si la cadena de texto contiene el número 2. Como sí lo contiene, la expresión regular devuelve lógicamente un [“2”].

“Este número es un 2”.match(/\d/); // Devuelve un [“2”]

–       Las expresiones regulares son capaces también de detectar la repetición de uno o varios dígitos dentro de una cadena de texto o una secuencia concreta de números dentro de esa misma cadena de texto. Lo único que es necesario es repetir dentro de la expresión el elementos \d, que debe ir acompañado, tanto en la apertura como el cierre, por el símbolo /:

“Este número es el 242”.match(/\d\d\d/);   // Devuelve el [“242”] porque dentro de esa cadena existe una expresión que contiene 3 dígitos seguidos.

–       Para la búsqueda de dígitos en distintas cadenas de texto:

/\d{3}/       Busca 3 dígitos en la cadena
/\d{1,5}/    Busca entre 1 y 5 dígitos en la cadena.
/\d{2,}/      Busca 2 dígitos o más en la cadena.

Aquí algunos ejemplos concretos con esta última expresión regular: en el primer ejemplo, la expresión permite buscar dentro de una cadena de texto concreta (en este caso, “1234”), un máximo de dos dígitos, por eso devuelve el elemento [“12”]; en el segundo caso se solicita buscar en la cadena de texto entre uno y tres dígitos, por eso devuelve [“123”]; y en el tercer caso, la expresión está diseñada para buscar dentro de la cadena entre tres y diez dígitos, por eso devuelve cuatro, la cadena de texto completa: [“1234”]. 

“1234”.match(/\d{2}/);
[“12”]

“1234”.match(/\d{1,3}/);
[“123”]

“1234”.match(/\d{3,10}/)
[“1234”]

También podría interesarte