Expresiones Regulares - Javascript

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

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]?rocoincidirí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.

<script>
    function ValidarCadenaExpReg() {
        // Expresion regular que representa un Email válido
        cadena = "^[a-z]+@[a-z]+\.[a-z]{2,4}$"; 
        re = new RegExp(cadena);
 
        if (document.getElementById("textValidReg").value.match(re))
            alert("Aceptado");  
        else 
            alert("Rechazado"); 
    }
</script>

<span>Email :</span></br>
<input id="textValidReg" type="text" value="gualambo@gmail.com" /></br>
<input onclick="ValidarCadenaExpReg()" type="button" value="Entrar" />

-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])$