Ir al contenido principal

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

Comentarios

  1. Gracias justo lo que necesitaba

    ResponderEliminar
  2. Buen artículo, sino me equivoco hay un error en :
    [3-7][a-d](u|e)coincidiría con "4eu" "6ae" "7du" "4bu"

    4eu -> [a-d]
    la 'e' está fuera del rango

    Saludos

    ResponderEliminar
  3. Excelente contenido, tengo la siguiente duda,

    utilizo 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;
    }

    ResponderEliminar
  4. 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?

    ResponderEliminar
  5. hola!! 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.

    ...3}-?.... ahi lleva un (tres,corchete,menos,Interrogacion) y no entiendo que quiere decir.

    Gracias, de todo lo demas esta genial

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Validar campo de texto sólo letras, números con javascript

En algunos casos necesitaremos que el usuario ingrese solamente letras en un campo de texto, impidiendo así el ingreso de números y caracteres especiales. Gracias a Javascript y HTML esto puede ser posible.   Método 1:  Podemos utilizar el atributo onkeypress devolviendo el valor de false, si es que se escribe un caracter distinto a la cadena que hemos definido (para el ejemplo es " áéíóúabcdefghijklmnñopqrstuvwxyz").   Método 2: Pasos a seguir: Crear una lista con todas las letras permitidas (a,b,c ... etc). Crear una lista de teclas especiales tales como (BackSpace , flecha izquierda, flecha derecha, Supr) estas son teclas permitidas aparte de las teclas permitidas en el primer paso.     Entendiendo el código En la línea 4 la sentencia String.fromCharCode(key) obteniene el caracter presionado por el usuario que añadiendo la sentencia toLowerCase() convertiríamos la letra a minúscula. Con esto guardamos la letra presionada por el us...

Validar campo de texto con javascript

Obligar al usuario a introducir un valor en un campo de texto perteneciente a un formulario se puede hacer de la siguiente manera con javascript. Código < script type = "text/javascript" > function validar () { //obteniendo el valor que se puso en campo text del formulario miCampoTexto = document . getElementById ( "miCampo" ) . value ; //la condición if ( miCampoTexto . length == 0 ) { return false ; } return true ; } </ script > < form action = "mipagina.php" onsubmit = "return validar()" > < input type = "text" id = " miCampo " name = "miCampo" > < br > < input type = "submit" value = "Enviar" > </ form > miCampoTexto.length -> indica el número de caracteres del texto introducido En esta validación los usuarios deben llenar los campos...

La propiedad Disabled en Javascript

Como atributo de un elemento HTML Ejemplo: "Solo añadiendo el atributo disabled". < input type = "button" value = "Desactivado" disabled /> < input type = "text" disabled /> < input type = "button" value = "Boton normal" /> Demostración: El botón y el campo de texto están desactivados Manipulando Disabled usando Javascript Ejemplo 1: Utilizando el "id" del campo de texto en este caso "miText". < script type = "text/javascript" > function Desactivar () { document . getElementById ( 'miText' ) . disabled = true ; } < /script > < input type = "button" value = "Desactivar" onclick = "Desactivar()" / > < input type = "text" id = "miText" / > Demostración: Dándole clic al botón se desactiva el campo de texto. Ejemplo 2:Utilizando el event...