Regex útiles para tu día a día

2020-05-28

post-thumb

Índice

Regex usadas en Brasil

CPF

Valida tanto 123.456.789-00 como 12345678900

No valida el algoritmo, solo el formato

(^\d{3}\.\d{3}\.\d{3}\-\d{2}$)

CNPJ

Valida tanto 12.345.678/0001-00 como 12345678000100

No valida el algoritmo, solo el formato

(^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$)

CPF o CNPJ

Muy útil cuando solo necesitas un documento válido

(^\d{3}\.\d{3}\.\d{3}\-\d{2}$)|(^\d{2}\.\d{3}\.\d{3}\/\d{4}\-\d{2}$)

RG

Valida cualquier RG, incluyendo finales con el dígito X

(^\d{1,2}).?(\d{3}).?(\d{3})-?(\d{1}|X|x$)

Teléfono

Valida cualquier teléfono o celular, con o sin código de área. El guión es opcional.

(^[0-9]{2})?(\s|-)?(9?[0-9]{4})-?([0-9]{4}$)

CEP (Código Postal)

Valida cualquier CEP con el guión siendo opcional.

(^[0-9]{5})-?([0-9]{3}$)

Otras

Trim en los espacios

¿Quién necesita espacios, verdad?

^[\s]*(.*?)[\s]*$

HTML Tag

Estás haciendo scraping, lo sé, esta regex te ayuda con eso

<([a-z]+)([^<]+)*(?:>(.*)<\/\1>|\s+\/>)

Valor hexadecimal

\B#(?:[a-fA-F0–9]{6}|[a-fA-F0–9]{3})\b

Email válido

La mejor expresión está en emailregex.com

En caso de duda, siempre usa la más actual de ese sitio.

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])

Username

Cualquier username, entre 3 y 15 caracteres con letras, números, guion bajo y guión

/^[a-z0-9_-]{3,15}$/

Password

Contraseña de mínimo 6 caracteres, al menos una letra mayúscula, al menos una letra minúscula, al menos un número, al menos un carácter especial

(?=^.{6,}$)((?=.*\w)(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[|!"$%&\/\(\)\?\^\'\\\+\-\*]))^.*

URLs

Cualquier url http, https, ftp válida

^(((https?|ftp):\/\/)?([\w\-\.])+(\.)([\w]){2,4}([\w\/+=%&_\.~?\-]*))*$

IPv4

Cualquier IPv4 válido

\b(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\b

URLs o IPv4

Las 2 regex anteriores juntas

^(((h..ps?|f.p):\/\/)?(?:([\w\-\.])+(\[?\.\]?)([\w]){2,4}|(?:(?:25[0–5]|2[0–4]\d|[01]?\d\d?)\[?\.\]?){3}(?:25[0–5]|2[0–4]\d|[01]?\d\d?)))*([\w\/+=%&_\.~?\-]*)$

Las Regex son poderosas

Se puede hacer casi todo con regex, si prefieres aprender en vez de solo usar, escribí un artículo que puede ayudarte: Cómo ser feliz usando Regex

Hasta pronto