Inicio Expresiones regulares
Artículo
Cancelar

Expresiones regulares

“Usar expresiones regulares para resolver un problema genera ahora dos problemas” Jamie Zawinski

¿Qué es una expresión regular?

Lee el artículo ¿Qué es una expresión regular?.

¿Qué es una expresión regular en pocas palabras?

Son patrones para buscar, capturar o reemplazar texto.

Por regla general, ¿es recomendable usar expresiones regulares siempre que podamos?

No. Solo hay que usarlas cuando nos proporcionen una ventaja muy clara.

¿Es necesario escribir expresiones regulares entre dobles comillas en JavaScript?

No. También podemos utilizar la notación literal.

¿Cuáles son las cuatro partes de una expresión regular?

alt text Partes de una expresión regular

¿Qué significa la i de la expresión regular /.a.o/i (notación literal)?

El flag i significa que no diferencia mayúsculas de minúsculas.

¿Qué significa la g de la expresión regular /M.+s/g?

¿Es lo mismo /M.+s/i que /[Mm].+[Ss]/?

Patrones

La potencia de las expresiones regulares es que podemos usar patrones para construir la expresión. Los más comunes son:

  • [..] (corchetes): dentro se ponen varios caracteres o un rango y permiten comprobar si el carácter de esa posición de la cadena coincide con alguno de ellos. Ejemplos:
    • [abc]: cualquier carácter de los indicados (‘a’ o ‘b’ o ‘c’)
    • [^abc]: cualquiera excepto los indicados
    • [a-z]: cualquier minúscula (el carácter ‘-‘ indica el rango entre ‘a’ y ‘z’, incluidas)
    • [a-zA-Z]: cualquier letra
  • ( | ) (pipe): debe coincidir con una de las opciones indocadas:
    • (x|y): la letra x o la y (sería equivalente a [xy])
    • (http|https): cualquiera de las 2 palabras
  • Metacaracteres:
    • . (punto): un único carácter, sea el que sea
    • \d: un dígito (\D: cualquier cosa menos dígito)
    • \s: espacio en blanco (\S: lo opuesto)
    • \w: una palabra o carácter alfanumérico (\W lo contrario)
    • \b: delimitador de palabra (espacio, ppio, fin)
    • \n: nueva línea
  • Cuantificadores:
    • +: al menos 1 vez (ej. [0-9]+ al menos un dígito)
    • *: 0 o más veces
    • ?: 0 o 1 vez
    • {n}: n caracteres (ej. [0-9]{5} = 5 dígitos)
    • {n,}: n o más caracteres
    • {n,m}: entre n y m caracteres
    • ^: al ppio de la cadena (ej.: ^[a-zA-Z] = empieza por letra)
    • $: al final de la cadena (ej.: [0-9]$ = que acabe en dígito)
  • Modificadores:
    • /i: que no distinga entre mayúsculas y minúsculas (Ej. /html/i = buscará html, Html, HTML, …)
    • /g: búsqueda global, busca todas las coincidencias y no sólo la primera
    • /m: busca en más de 1 línea (para cadenas con saltos de línea)

Expresión regular para validar un email

Mira el vídeo:

Preguntas a responder tras la visualización del vídeo:

  1. ¿Cuál es la expresión regular para validar o encontrar cualquier email?
  2. Si tenemos un email por línea, ¿cómo podríamos hacer que no encuentre líneas que no tengan la forma de un email válido?

(Voluntario) Para saber más…

Lee el artículo Propiedades y flags.

Lee el artículo Buscar y capturar textos.

Lee el artículo Crear expresiones regulares.

Bibliografía

Este artículo está licenciado bajo CC BY 4.0 por el autor.

Eventos en JavaScript

Validación de formularios con HTML y JavaScript