Expresiones Regulares (RegEx) en JavaScript

Hola a todos, en esta ocasión vamos a aprender un poco sobre las expresiones regulares en Javascript. Empecemos por conocer:

¿Qué es una RegEx (expresión regular)?

RegEx es la abreviatura de Expresión Regular. Las expresiones regulares son cadenas de caracteres especiales que se utilizan como patrones para hacer búsquedas en los strings (cadenas).

¿Para qué se utilizan las RegEx?

  • Validaciones (ejemplo validar el formato de un email, un número telefónico, etc.)
  • Buscar y reemplazar cadenas de texto.
  • Coincidencia de patrones. (Ejemplo en una contraseña que debería contener al menos una mayúscula, símbolo y número, etc.)

¿Cómo utilizar RegEx en Javascript?

Básicamente, existen dos formas de definir una expresión regular en JavaScript:

  1. Definición literal
  2. Utilizando el objeto RegExp

Veamos un ejemplo de ambos casos:

Usando literales

let expRegular = /ab/;
Como podemos observar en el primer test, si encuentra el patrón «ab» y en el segundo test no.

Utilizando el objeto RegExp

let expRegular = new RegExp('ab');
En este caso también encuentra el patrón en el primer test, pero no en el segundo.

Para utilizar el objeto RegExp no es necesario hacer ningún import/require ya que este es un objeto global y está disponible para usarlo en todas las partes de tu código.

Algunas referencias de expresiones regulares:

PatrónCoincidencia
[a,b,c]a, b o c
[^abc]Cualquier caracter que no sea a,b o c
[a-z]Todo de la a a la z
[A-Z]Todo de la A a la Z
[a-zA-Z]Todo de la a a la z y de la A a la Z
[0-9]Todo del 0 al 9

Banderas

Existen algunas banderas que se utilizan para indicar a la expresión regular como realizar las coincidencias:

  • i: Se utiliza para ignorar la distinción entre mayúsculas y minúsculas.
  • g: Se utiliza para realizar búsquedas globales.
  • s: Se utiliza para hacer coincidir el caracter de nueva línea.
  • m: Se utiliza para realizar búsquedas multilínea.

Puedes utilizar banderas indicando como segundo argumento del constructor RegExp()

let expBandera = new RegExp('gold', 'i');
En este caso localiza el patrón gold sin importar mayúsculas y minúsculas.

Metacaracteres

Los metacaracteres se utilizan para hacer coincidir el siguiente caracter, ya sea como caracter especial o como literales.

Te muestro algunos metacaracteres:

MetacaracterCoincidencia
\dBusca cualquier dígito (número arábigo). Equivalente a [0-9]. Por ejemplo, /\d/ o /[0-9]/ encuentra el «2» en «B2 es el número de suite».
\DBusca cualquier caracter que no sea un dígito (número arábigo). Equivalente a [^0-9]. Por ejemplo, /\D/ o /[^0-9]/ encuentra la «B» en «B2 es el número de suite».
\sBusca un solo caracter de espacio en blanco, incluido el espacio, tabulación, avance de página, avance de línea y otros espacios Unicode.
\wBusca cualquier caracter alfanumérico del alfabeto latino básico, incluido el caracter de subrayado. Equivalente a [A-Za-z0-9_]. Por ejemplo, /\w/ encuentra la «m» en «manzana», el «5» en «$5.28» y el «3» en «3D».
\WBusca cualquier caracter que no sea un caracter de palabra del alfabeto latino básico. Equivalente a [^A-Za-z0-9_]. Por ejemplo, /\W/ o /[^A-Za-z0-9_]/ encuentra el caracter «%» en «50%».
Si quieres ver todos los metacaracteres visita el siguiente enlace.

Cuantificadores

Los cuantificadores se utilizan para decir cuántos caracteres o expresiones se desea hacer coincidir.

Por ejemplo, si quieres hacer coincidencia con 16 dígitos, deberás hacer algo como esto:

let expRegular = new RegExp('\\d{16}');

Algunos cuantificadores son los siguientes:

CuantificadorSignificado
[]?Coincidirá con la aparición de cualquier cosa entre paréntesis 0 o 1 veces.
[]+Comprueba que lo del paréntesis ocurra 1 o más veces.
[]*Ocurre 0 o más veces
[]{n}Ocurre n veces
[]{n,}Ocurre n o más veces
[]{n,m}Ocurre al menos n veces pero no más que m veces
Visita esta página para ver más sobre cuantificadores.

Espero te sirva y te motive a investigar más sobre las expresiones regulares, son muy útiles a la hora de hacer tus programas y scripts.

Saludos!

Sobre Gustavo Zimbrón 188 artículos
Apasionado por la programación y la tecnología, me gustan los retos y aprender siempre cosas nuevas.
Subscribe
Notify of
guest

0 Comentarios
Oldest
Newest Most Voted
Inline Feedbacks
View all comments