Expresiones Regulares

3
¿Qué son las expresiones regulares? Odiadas por unos, adoradas por otros… en cualquier caso las expresiones regulares son siempre útiles y necesarias para validar todo tipo de datos, buscar, encontrarcoincidencias en cadenas de texto y mucho más. Si tuviéramos que dar una definición de forma técnica, una expresión regular (o patrón) es una expresión que describe un conjunto de cadenas sin enumerar sus elementos. Así pues en una búsqueda de dos caracteres concretos, no importará si número de caracteres es 10 o un millón, las expresiones regulares nos porporcionarán una solución al problema. Además de buscar, también podremos saber si una cadena es una fecha, un e-mail, una dirección web… tan sólo deberemos conocer el patrón necesario a escribir. A continuación compartimos con todos vosotros 10 expresiones regulares que a buen seguro usaréis en más de una ocasión y que serán siempre útiles en vuestros proyectos web. 1. Validar una URL ¿Quieres saber si una dirección web es válida? No hay problema con esta expresión regular lo tendremos muy fácil: 1. /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/ 2. Validar un E-mail En muchas ocasiones necesitaremos saber si un e-mail con el que se trata de registrar un usuario es válido: 1. ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$ 3. Comprobar la seguridad de una contraseña Para aquellos que necesitáis sugerir / comprobar la fortaleza de una contraseña: 1. (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$ De esta forma comprobaremos: Contraseñas que contengan al menos una letra mayúscula. Contraseñas que contengan al menos una letra minúscula. Contraseñas que contengan al menos un número o caracter especial. Contraseñas cuya longitud sea como mínimo 8 caracteres. Contraseñas cuya longitud máxima no debe ser arbitrariamente limitada. 4. Validar un número de teléfono

description

Expresiones regulares comunes

Transcript of Expresiones Regulares

Page 1: Expresiones Regulares

¿Qué son las expresiones regulares?Odiadas por unos, adoradas por otros… en cualquier caso las expresiones regulares son siempre útiles y necesarias para validar todo tipo de datos, buscar, encontrarcoincidencias en cadenas de texto y mucho más.Si tuviéramos que dar una definición de forma técnica, una expresión regular (o patrón) es una expresión que describe un conjunto de cadenas sin enumerar sus elementos.

Así pues en una búsqueda de dos caracteres concretos, no importará si número de caracteres es 10 o un millón, las expresiones regulares nos porporcionarán una solución al problema. Además de buscar, también podremos saber si una cadena es una fecha, un e-mail, una dirección web… tan sólo deberemos conocer el patrón necesario a escribir.A continuación compartimos con todos vosotros 10 expresiones regulares que a buen seguro usaréis en más de una ocasión y que serán siempre útiles en vuestros proyectos web.

1. Validar una URL¿Quieres saber si una dirección web es válida? No hay problema con esta expresión regular lo tendremos muy fácil:

1. /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/  

2. Validar un E-mailEn muchas ocasiones necesitaremos saber si un e-mail con el que se trata de registrar un usuario es válido:

1. ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$  

3. Comprobar la seguridad de una contraseñaPara aquellos que necesitáis sugerir / comprobar la fortaleza de una contraseña:

1. (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$  

De esta forma comprobaremos: Contraseñas que contengan al menos una letra mayúscula.

Contraseñas que contengan al menos una letra minúscula.

Contraseñas que contengan al menos un número o caracter especial.

Contraseñas cuya longitud sea como mínimo 8 caracteres.

Contraseñas cuya longitud máxima no debe ser arbitrariamente limitada.

4. Validar un número de teléfonoCon este snippet se validarán todos los número de teléfono pertenecientes a los listados en la Wikipedia:

1. ^\+?\d{1,3}?[- .]?\(?(?:\d{2,3})\)?[- .]?\d\d\d[- .]?\d\d\d\d$  

5. Validar número de tarjeta de créditoAhora que tan de moda está el e-commerce seguro que esto le vendrá bien a más de uno:

1. ^((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}$  

6. Recoger ID de un vídeo de Youtube

Page 2: Expresiones Regulares

Si necesitas recoger el ID de un vídeo de Youtube en sus múltiples combinaciones, esta es tu expresión regular:

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

7. Validar todas las etiquetas de imagen sin cerrarAhora que prácticamente todos empleamos xHTML es interesante comprobar que todas nuestras etiquetas de imagen están correctamente cerradas:

1. <img([^>]+)(\s*[^\/])></img([^>  

8. Validar una dirección IPSi necesitas validar una dirección IP introducida por un usuario, esto te será de gran ayuda:

1. /^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/  

9. Validar código postalEn muchas ocasiones necesitamos recoger en los formularios de alta el código postal:

1. ^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$  

10. Validar un nombre de usuarioSi por ejemplo quisiésemos validar un nombre de usuario con un mínimo de 4 caracteres y un máximo de 15 haríamos lo siguiente:

1. /^[a-z\d_]{4,15}$/i  

Además el nombre estaría utilizando sólo caracteres de la A-z y números.

Validar una URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \?=.-]*)*\/?$/  Validar un Email:\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 

Validar un numero de Telefono:^[+-]?\d+(\.\d+)?$

Validar una tarjeta de credito^((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}$  Validar un codigo postal^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$  Validar un Nombre[a-zA-ZñÑ\s]{2,20}

[a-zA-ZñÑ\s]{2,20}

Validar Domicilio:

Page 3: Expresiones Regulares

^.*(?=.*[0-9])(?=.*[a-zA-ZñÑ\s]).*$

Validar IFE^.*(?=.{13})[+-]?\d+(\.\d+)?$

Validar CURP

^[a-zA-Z]{4,4}[0-9]{6}[a-zA-Z]{6,6}[0-9]{2}$

^.*(?=.{18})(?=.*[0-9])(?=.*[A-ZÑ]).*$

Solo Numeros[0-9]{1,9}(\.[0-9]{0,2})?$

Solo Letras[a-zA-ZñÑ\s]