Una expresión regular es un patrón que se crea utilizando caracteres del alfabeto con la ayuda de operación de unión, concatenación y clausura de kleene (*) para representar un lenguaje regular
^[a-z]+@[a-z]+\.[a-z]{2,4}$ : Esto validaría un email (aunque no es muy completo) ej. "gualambo@gmail.com"
Descripción de las Expresiones Regulares
Caracter
|
Significado
|
Ejemplo
|
Resultado
|
^
|
Comienzo de la cadena |
^ad
|
Todas las palabras que comienzan con "ad" |
$
|
Final de la cadena |
ad$
|
Todas las palabras que terminan en "ad" |
\
|
Permite usar caracteres especiales |
\^
|
Representa este símbolo ^ |
.
|
Equivale a un solo caracter excepto salto de línea |
a.a
|
Busca "aaa" "aba" "aca" "ada" ... etc |
*
|
El caracter anterior 0 o más veces |
per*o
|
Busca "peo" "pero" "perro" "perrro" ... etc |
?
|
El caracter anterior 0 a 1 vez |
ah?y
|
Busca solamente "ay" "ahy" |
+
|
El caracter anterior 1 a más veces |
mas+
|
Busca "mas" "mass" "masss" ... etc |
|
|
Indica opciones |
soltero|casado|divorciado
|
Representa una de las opciones |
( abcd)
|
Agrupa elementos para usarlos como si fuera uno |
(abc)
|
Representa"abc" "rabcg" "feabcrr" ... etc |
{a}
|
Indica el número de repeticiones |
e{3}
|
Representa solamente "eee" |
{a,}
|
Debe repetir al menos "a" veces |
a{2,}
|
Representa "aa" "aaa" "aaaa" ... etc |
{a,b}
|
Debe repetir al menos "a" veces hasta "b" veces |
u{1,4}
|
Representa solamente "u" "uu" "uuu" "uuuu" |
[abcd]
|
Indica un sólo caracter del grupo indicado |
[gth]
|
Representa una de las opciones "g" "t" "h" |
[a-z]
|
Indica una opción de la letra "a" hasta la "z" |
[d-g]
|
Representa una de las opciones "d" "e" "f" "g" |
[0-9]
|
Indica una opción del numero 0 al 9 |
[4-7]
|
Representa una de las opciones "4" "5" "6" "7" |
[^abcd]
|
Indica un caracter menos las opciones indicadas |
[^dgh]
|
Representa un caracter menos "d" "g" "h" |
\d
|
Indica un dígito |
4\d
|
Representa "40" "41" "42" ... etc |
[ \s\t\n\r]
|
Incluyen espacio en blanco, tabulador, nueva línea, retorno | ||
\w
| Cualquier alfanumérico [a-zA-Z0-9_ ] |
\w{2,4}
|
Representa "4tw" "r3" "ff" "aert" ... etc |
Ejemplos
fran[zk] | coincidiría con | "franz" o "frank" pero no con "franzk" ni con "ranz" |
(franz)|(wilder) | coincidiría con | "franz" "wilder" "franzymas" "wilderymas" |
pe[dr]?ro | coincidiría con | "pedro" "perro" "pero" "pedroymasletras" "peroymas" |
[aei]{2,3}c*a? | coincidiría con | "aaca" "iiicc" "ee" "aaaca" |
[3-7][a-d](u|e) | coincidiría con | "4eu" "6ae" "7du" "4bu" |
Ejercicios
[abc][efg] | |
[xyz]|b{2} |
^[a-z]+@[a-z]+\.[a-z]{2,4}$ : Esto validaría un email (aunque no es muy completo) ej. "gualambo@gmail.com"
-Validaciones particulares
Con este código podemos validar formularios con campos de texto como Email, URL, contraseña segura, fecha etc... sólo cambiando la variable cadena con la expresión regular correspondiente.
Email :
-Lista de Expresiones Regulares más usadas
Cualquier letra en minuscula | [a-z] |
Entero | ^(?:\+|-)?\d+$ |
Correo electrónico | /[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}/ |
URL | ^(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)( [a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?$ |
Contraseña segura | (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$ (Entre 8 y 10 caracteres, por lo menos un digito y un alfanumérico, y no puede contener caracteres espaciales) |
Fecha | ^\d{1,2}\/\d{1,2}\/\d{2,4}$ (Por ejemplo 01/01/2007) |
Hora | ^(0[1-9]|1\d|2[0-3]):([0-5]\d):([0-5]\d)$ (Por ejemplo 10:45:23) |
Número 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}$ |
Número teléfono | ^[0-9]{2,3}-? ?[0-9]{6,7}$ |
Código postal | ^([1-9]{2}|[0-9][1-9]|[1-9][0-9])[0-9]{3}$ |
Certificado Identificación Fiscal | ^(X(-|\.)?0?\d{7}(-|\.)?[A-Z]|[A-Z](-|\.)?\d{7}(-|\.)? [0-9A-Z]|\d{8}(-|\.)?[A-Z])$ |
Gracias justo lo que necesitaba
ResponderEliminarBuen artículo, sino me equivoco hay un error en :
ResponderEliminar[3-7][a-d](u|e)coincidiría con "4eu" "6ae" "7du" "4bu"
4eu -> [a-d]
la 'e' está fuera del rango
Saludos
Excelente contenido, tengo la siguiente duda,
ResponderEliminarutilizo la siguiente ER:
var expAlfanumerico = /[[:alnum:]]\S/;
en javascript y funciona de maravilla
pero en las multiples prueba que hice
encontre lo siguiente:
#460000 si valido esta expresion como alfanumerica arroja falso
pero si valido 46000# arroja verdadero, alguien me puede explicar
adjunto codigo completo para mayor claridad:
var expAlfanumerico = /[[:alnum:]]\S/;
function validaOC(param){
if(param.match(expAlfanumerico)){
return true;
}
return false;
}
Hola tengo que hacer una que lleve los números 012 pueden ir infinidad de veces cada numero, pero no debe de ir en pares el numero 1 es decir no poder ir asi 0112 o 01211, el uno no puede ir seguido de otro uno... ¿Cómo le hago?
ResponderEliminarhola!! me encanto como esta explicado, y entendi casi todo, solo no entiendo cuando llevan el simbolo '-' fuera de los parentesis cuadrados como en el de numero.
ResponderEliminar...3}-?.... ahi lleva un (tres,corchete,menos,Interrogacion) y no entiendo que quiere decir.
Gracias, de todo lo demas esta genial