Índice
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:
- Definición literal
- Utilizando el objeto RegExp
Veamos un ejemplo de ambos casos:
Usando literales
let expRegular = /ab/;
Utilizando el objeto RegExp
let expRegular = new RegExp('ab');
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ón | Coincidencia |
---|---|
[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');
Metacaracteres
Los metacaracteres se utilizan para hacer coincidir el siguiente caracter, ya sea como caracter especial o como literales.
Te muestro algunos metacaracteres:
Metacaracter | Coincidencia |
---|---|
\d | Busca 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». |
\D | Busca 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». |
\s | Busca un solo caracter de espacio en blanco, incluido el espacio, tabulación, avance de página, avance de línea y otros espacios Unicode. |
\w | Busca 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». |
\W | Busca 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%». |
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:
Cuantificador | Significado |
---|---|
[]? | 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 |
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!