post icon

Expresiones regulares útiles

El tema de las expresiones regulares puede ser bastante engorroso o tedioso de aplicar especialmente cuanto más complejo es lo que hay que validar, pero es la mejor manera de crear validaciones, en cuanto a eficiencia y costo mantenimiento que complejos algoritmos que trabajan con cadenas de texto.

La idea de este articulo no es desmenuzar a fondo las expresiones regulares sino publicar algunas más utilizadas ahora e iré agregando con el tiempo otras que considere de utilidad, e incluso si nos pasan en los comentarios los que crean útiles iremos agregando para tener una especie de colección o diccionario de expresiones rápidas y comúnmente utilizadas.

URL de Internet

http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

Dirección de Correo Electrónico

\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

Sólo números con longitud obligatoria

Para este ejemplo creamos una expresión que valida una cadena numérica de 6 digitos

\d{6}

Contraseña Segura

Valida lo siguiente:

  1. Que contengan al menos una letra mayúscula.
  2. Que contengan al menos una letra minúscula.
  3. Que contengan al menos un número o carácter especial.
  4. La longitud sea como mínimo 8 caracteres.
  5. La  longitud máxima no debe ser arbitrariamente limitada.
(?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*

Tarjeta de Crédito

^((67\d{2})|(4\d{3})|(5[1-5]\d{2})|(6011))(-?\s?\d{4}){3}|(3[4,7])\ d{2}-?\s?\d{6}-?\s?\d{5}$

Dirección IPv4

No acepta direcciones reservadas como 10.0.0.1 o 127.0.0.1 y otros

^(1\d{0,2}|2(?:[0-4]\d{0,1}|[<wbr />6789]|5[0-5]?)?|[3-9]\d?|0)\.(<wbr />1\d{0,2}|2(?:[0-4]\d{0,1}|[<wbr />6789]|5[0-5]?)?|[3-9]\d?|0)\.(<wbr />1\d{0,2}|2(?:[0-4]\d{0,1}|[<wbr />6789]|5[0-5]?)?|[3-9]\d?|0)\.(<wbr />1\d{0,2}|2(?:[0-4]\d{0,1}|[<wbr />6789]|5[0-5]?)?|[3-9]\d?|0)(\/<wbr />(?:[012]\d?|3[012]?)){0,1}$

Dirección IPv6

^[a-f0-9]{0,4}((\:)?|(\::)?)[<wbr />a-f0-9]{0,4}((\:)?|(\::)?)[a-<wbr />f0-9]{0,4}((\:)?|(\::)?)[a-f0-<wbr />9]{0,4}((\:)?|(\::)?)[a-f0-9]{<wbr />0,4}((\:)?|(\::)?)[a-f0-9]{0,<wbr />4}((\:)?|(\::)?)[a-f0-9]{0,4}(<wbr />(\:)?|(\::)?)[a-f0-9]{0,4}(\/(<wbr />?:[01236]\d?|1\d[0-8]?)){0,1}$

ID de Youtube

/http:\/\/(?:youtu\.be\/|(?:[a-z]{2,3}\.)?youtube\.com\/watch(?:\?|#\!)v=)([\w-]{11}).*/gi

Etiquetas HTML sin cerrar

Se puede cambiar img por cualquier otra etiqueta
<img([^>]+)(\s*[^\/])>

Alfanumérico sin vocales con tildes y espacios

[a-z0-9-]*[a-z-]+[a-z0-9-]*

Alfanumérico con vocales con tildes y espacios

^[a-zA-Z0-9 áéíóúAÉÍÓÚÑñ]+$

Numéricos

/^[0-9]*$/

Colores Hexadecimales

/^#(?:(?:[a-f\d]{3}){1,2})$/i

Fecha simple [DD/MM/DDDD]

^\d{1,2}\/\d{1,2}\/\d{2,4}$

Fecha [MM/DD/YYYY]

/^((0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2})*$/

Fecha [YYYY/MM/DD]

#^((19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01]))*$#

Hora

^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$

Código Postal Alemán

(D-)?\d{5}

Código Postal de EEUU

\d{5}(-\d{4})?

Código Postal Chino

\d{6}

Código Postal Japonés

\d{3}(-(\d{4}|\d{2}))?

Código Postal Francés

\d{5}

Número de teléfono Alemán

((\(0\d\d\) |(\(0\d{3}\) )?\d )?\d\d \d\d \d\d|\(0\d{4}\) \d \d\d-\d\d?)

Número de teléfono de EEUU

((\(\d{3}\) ?)|(\d{3}-))?\d{3}-\d{4}

Número de teléfono Chino

(\(\d{3}\)|\d{3}-)?\d{8}

Número de teléfono Japonés

(0\d{1,4}-|\(0\d{1,4}\) ?)?\d{1,4}-\d{4}

Número de teléfono Francés

(0( \d|\d ))?\d\d \d\d(\d \d| \d\d )\d\d

Seguro Social de EEUU

\d{3}-\d{2}-\d{4}

Seguro Social de China

\d{17}[\d|X]|\d{15}
10 diciembre 2012

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder