martes, 10 de febrero de 2015

VALIDACION DE FORMULARIOS - EXPRESIONES REGULARES

¿Qué son las expresiones regulares?

Las expresiones regulares son modelos que describen las combinaciones de caracteres en el texto. Se podrían definir como una serie de caracteres que forman un patrón, que representan a otro grupo de caracteres mayor, de tal forma que podemos comparar el patrón con otros conjuntos de caracteres para ver las coincidencias. Las expresiones regulares pueden utilizarse en múltiples lenguajes de programación pero en esta entrada vamos a ver un ejemplo de validación de formularios mediante Javascript y haciendo uso de expresiones regulares.

¿Cómo interpretarlas?

Ejemplos:

– Número de teléfono nacional (sin espacios) 

• Ejemplo: 954556817 

• Exp. Reg.: /^\d{9}$/ o también /^[0-9]{9}$/ 

Comienza (^) por una cifra numérica (\d) de la que habrá 9 ocurrencias ({9}) y aquí acabará la cadena ($). 

NOTA: La expresión “\d” equivale a la expresión “[0-9]”, y representa a un carácter de una cifra numérica, es decir, ‘0’ o’1’ o ‘2’ o ‘3’ ... o ‘9’.

– Número de teléfono internacional

• Ejemplo: (+34)954556817 

• Exp. Reg.: /^\(\+\d{2,3}\)\d{9}$/ 

Comienza (^) por un paréntesis (\(), le sigue un carácter + (\+), después una cifra numérica (\d) de la que habrá 2 o 3 ocurrencias ({2,3}), después le sigue un paréntesis de cierre (\)), luego viene una cifra numérica de la que habrá 9 ocurrencias ({9}), y aquí acabará la cadena ($). 

NOTA: Puesto que los caracteres: (, ), +, *, -, \, {, }, |, etc... tienen significados especiales dentro de una expresión regular, para considerarlos como caracteres normales que debe incluir una cadena deben de ir precedidos del carácter de barra invertida \. 

– Fecha con formato DD/MM/AAAA

• Ejemplo: 09/01/2006 

• Exp. Reg.: /^\d{2}\/\d{2}\/\d{4}$/ 

Comienza (^) por una cifra numérica (\d) de la que habrá 2 ocurrencias ({2}), después una barra (\/), seguida de 2 cifras numéricas, otra barra, 4 cifras numéricas, y aquí acabará la cadena ($). 

– Código postal

• Ejemplo: 41012 

• Exp. Reg.: /^\d{5}$/ 

Únicamente contiene 5 cifras numéricas. 

– Email

• Ejemplo: usuario@servidor.com 

• Exp. Reg.: /^(.+\@.+\..+)$/ 

Comienza (^) por caracteres cualesquiera que no sean salto de línea (.) de los que habrá al menos una ocurrencia (+), después el carácter arroba (\@), seguido de al menos un carácter que no podrá ser el salto de línea (.+), después viene el carácter punto (\.), seguido de al menos un carácter donde ninguno podrá ser el salto de línea (.+), y aquí acabará la cadena ($). 

– Número entero

• Ejemplo: -123 

• Exp. Reg.: /^(\+|\-)?\d+$/ o también /^[+-]?\d+$/ o también /^[+-]?[0-9]+$/ 

Comienza (^) opcionalmente (?) por el carácter + o por el carácter -, por lo que puede que incluso no aparezcan ninguno de los 2; seguidamente vienen caracteres de cifras numéricas (\d) de los que al menos debe introducirse uno (+), y aquí acabará la cadena ($). 

– Número real

• Ejemplo: -123.35 o 7,4 o 8 

• Exp. Reg.: /^[+-]?\d+([,.]\d+)?$/ 

Comienza (^) opcionalmente (?) por el carácter + o por el carácter -, por lo que puede que incluso no aparezcan ninguno de los 2; seguidamente vienen caracteres de cifras numéricas (\d) de los que al menos debe introducirse uno (+), y, opcionalmente, aparecerá un punto o coma decimal seguido de al menos una cifra numérica, y aquí acabará la cadena ($).

Creación de expresiones regulares


Par crear una expresión regular, puede utilizarse dos métodos: 

1) La primera opción compila la expresión regular cuando se evalúa el script, por lo que es mejor cuando la  expresión regular es una constante (delimitada por barras) y no va a variar a lo largo de la ejecución del programa. 

exp_reg1 = /^[0-9]+/; 

La variable se convierte en una variable del tipo expresión regular, por tanto, puede usarse con ella el método test para validar la cadena. 


 if(exp_reg1.test(“123”)==false)

2) La segunda opción compila la expresión regular en tiempo de ejecución (guardada en una variable de tipo cadena o en un campo de un formulario). Aquí los delimitadores son las comillas dobles, no las barras. 

exp_reg2 = new RegExp("^[0-9]+"); // Ahora exp_reg2 es una variable que contiene una expresión regular. 

 exp_reg3 = new RegExp(formu.campo1.value); 

// exp_reg3 tendrá como expresión regular el contenido del campo campo1 del formulario formu. 

exp_reg4 = new RegExp(cadena1); 

// exp_reg4 tendrá como expresión regular el contenido de la variable de cadena cadena1. 


if(exp_reg3.test(“123”)==false) // Ahora podrá usarse el método test en las variables.

Patrón de expresiones regulares


Expresiones regulares especiales




Ejemplos:

Letra minúscula 

[a-z]

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\-\.\?\,\’\/\\\+&%\$#_]*)?$/

Fecha

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

Hora 

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

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}$/

Ejemplo:





No hay comentarios:

Publicar un comentario

analytics