Icono del sitio Blog de Programación y Desarrollo – Nube Colectiva

5 Expresiones Regulares Que Deberías Conocer en JavaScript

La expresiones regulares son como un lenguaje propio y permiten de manera concisa y flexible, buscar y reemplazar dentro de strings o cadenas de texto. Con una experesión regular, puedes unir fácilmente caracteres, palabras o patrones dentro de un texto. Un ejemplo básico sería la expresión regular /g*l/, que coincide con gol o gel y textos similares. En este Post te compartiré 5 Expresiones Regulares Que Deberías Conocer en JavaScript, vamos con ello.

Antes de continuar te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “Porque Debes Acostumbrarte A Resolver Los Problemas De Código Por Tu Cuenta” (En Spotify, Sound Cloud y Apple Podcasts) “¿ Porqué Es Importante Saber Programar en la Ciberseguridad ?” (Anchor Podcast)

Spotify: Sound Cloud: Apple Podcasts Anchor Podcasts

Bien ahora continuemos con el Post: 5 Expresiones Regulares Que Deberías Conocer en JavaScript. 

La clave para recordar acerca de las expresiones regulares es que casi se leen hacia adelante y hacia atrás al mismo tiempo. Los delimitadores utilizados en las expresiones regulares son barras diagonales: /. Cada patrón comienza y termina con un delimitador. Si aparece una barra inclinada en una expresión regular, debemos escapar con una barra invertida como esta: \/.

Coincidencia de una contraseña

Patrón:


Descripción:

Una forma de hacer que las contraseñas sean difíciles de adivinar es asegurarse de que las personas incluyan al menos un número, al menos una letra minúscula, al menos una letra mayúscula y al menos un carácter especial. También tiene sentido que incluyamos algún tipo de control de longitud. Por ejemplo, la contraseña debe tener una longitud de entre 8 y 18 caracteres.

La expresión regular verifica todas estas condiciones. Se divide en cinco partes distintas. Las primeras cuatro partes son expresiones anticipadas positivas, entre paréntesis, con el prefijo ?=.. Las expresiones anticipadas positivas coincidirán en cualquier parte del string o cadena, no es necesario que aparezcan en orden. Consideremos (?=.*\d) como ejemplo. Busca cualquier número en cualquier parte de una cadena o string. Del mismo modo, (?=.*[a-z]) busca letras minúsculas y (?=.*[A-Z]) letras mayúsculas.

Ten en cuenta que no usamos la expresión (?=.*[a-zA-Z]) dentro de nuestra expresión regular. Esto habría significado que la presencia de una letra minúscula o una letra mayúscula hubiera dado un resultado positivo. Queremos letras minúsculas y mayúsculas.

Emparejar una Slug

Patrón:


Descripción:

Esta expresión regular es útil si alguna vez tienes que trabajar con mod_rewrite y URLs bonitas. Comenzamos diciéndole al analizador que busque el comienzo de la cadena ( ^), seguido de una o más (el signo más) letras, números o guiones. Finalmente, queremos el final de la cadena o string ( $).

Coincidencia de un Correo Electrónico

Patrón:


Descripción:

Comenzamos diciéndole al analizador que encuentre el comienzo de la cadena o string ( ^). Dentro del primer grupo, hacemos coincidir una o más letras minúsculas, números, guiones bajos, puntos o guiones. He escapado del punto porque un punto sin escape significa cualquier carácter.

Inmediatamente después de eso, debe haber un @. El siguiente es el nombre de dominio que debe ser: una o más letras minúsculas, números, guiones bajos, puntos o guiones. Luego otro punto (de escape), con una extensión de dos a sesenta y tres letras o puntos. Tengo de 2 a 63 debido a los TLD específicos de algunos paises que uso como referencia (.ny, .us o .co, .uk) y por supuesto las nuevas reglas permiten TLD más largos. Finalmente, queremos el final de la cadena o string ( $).

Coincidencia de una etiqueta HTML

Patrón:


Descripción:

Coincide con cualquier etiqueta HTML con el contenido dentro. Como de costumbre, comenzamos con el inicio de la línea.

Primero viene el nombre de la etiqueta. Debe tener una o más letras de largo. Este es el primer grupo de captura, es útil cuando tenemos que agarrar la etiqueta de cierre. Lo siguiente son los atributos de la etiqueta. Es cualquier carácter excepto un signo de mayor que ( >). Dado que esto es opcional, pero quiero hacer coincidir más de un carácter, se usa el asterisco. El signo más constituye el atributo y el valor, y es asterisco dice tantos atributos como desee.

Luego viene el tercer grupo de no captura. En el interior, contendrá un signo mayor que, algo de contenido y una etiqueta de cierre; o algunos espacios, una barra diagonal y un signo mayor que. La primera opción busca un signo mayor que seguido de cualquier número de caracteres y la etiqueta de cierre. \1 que representa el contenido que se capturó en el primer grupo de captura. En este caso era el nombre de la etiqueta. Ahora, si no se pudo hacer coincidir, queremos buscar una etiqueta de cierre automático (como una etiqueta img, br o hr). Esto debe tener uno o más espacios seguidos de />.

Fechas

Patrón:


Descripción:

Las fechas se escriben en una variedad de formatos en todo el mundo. Para este ejemplo en particular, nos centraremos en las fechas que siguen el formato DD/MM/AAAA o DD/MM/AA.

Comencemos con las fechas. Las fechas en un mes pueden ir desde un valor mínimo de 1 hasta 31 como máximo. Los usuarios también pueden escribir las fechas como 02 en lugar de solo 2 para el día del mes. Cubrimos todos estos escenarios con la primera parte de la expresión. Como puedes ver, si el primer dígito es 1 o 2, permitimos que el segundo dígito sea cualquier cosa entre 0 y 9. Si el primer dígito es 3, el segundo dígito solo puede ser 0 o 1.

Para los separadores, queremos que los caracteres sean solo un guión, un punto, un espacio o una barra oblicua. Esto se coloca dentro de un grupo de captura para que podamos verificar que se usa el mismo separador entre el mes y el valor del año.

El mes solo llega hasta el 12, por lo que permitimos que el segundo dígito solo sea 0, 1 o 2 si el primer dígito es 1. No hay restricción en el número del año. Puede ser cualquier número de cuatro dígitos como 1508 o 9999. También permitimos que el año se escriba con dos dígitos en caso de que alguien quiera escribir la fecha como 09/11/91.

Recuerda que la expresión regular anterior es para fechas que siguen el formato DD/MM/YYYY. Puedes intentar modificarlo al formato de fecha MM/DD/YYYY.

Una cosa más que me gustaría señalar es que la expresión regular anterior considerará el 31.02.1991 como una fecha válida. Sin embargo, sabemos que esta es una fecha inválida ya que febrero tiene como máximo 29 días. Podríamos escribir nuestra expresión regular para asegurarnos de que la cantidad de días en febrero nunca supere los 28 para años regulares y los 29 para años bisiestos. Sin embargo, eso haría que la expresión regular fuera innecesariamente complicada. Es mucho más práctico usar librerías de validación de fechas para estos casos extremos.

Conclusión

Espero que hayas captado un poco mejor las ideas detrás de las expresiones regulares. ¡Con suerte, usará estas expresiones regulares en proyectos futuros! Muchas veces no necesitarás descifrar una expresión regular carácter por carácter, pero a veces si lo haces te ayudará a aprender. Solo recuerda, no tengas miedo de las expresiones regulares, puede que no lo parezcan, pero te hacen la vida mucho más fácil.

Nota (s)

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos. 

Salir de la versión móvil