Validación con expresiones regulares y Javascript

Las expresiones regulares son modelos que describen las combinaciones de caracteres en el texto. Se podrían definir como una serie de carácteres que forman un patrón, que representan a otro grupo de carácteres mayor, de tal forma que podemos comparar el patrón con otros conjuntos de carácteres para ver las coincidencias. Las expresiones regulares pueden utilizarse en múltiples lenguajes de programación.

En la tabla que sigue se muestran los caracteres comodín usados para crear los patrones y su significado, junto a un pequeño ejemplo de su utilización.

Significado Ejemplo Resultado
\ Marca de carácter especial /\$ftp/ Busca la palabra $ftp
^ Comienzo de una línea /^-/ Líneas que comienzan por -
$ Final de una línea /s$/ Líneas que terminan por s
. Cualquier carácter (menos salto de línea) /\b.\b/ Palabras de una sóla letra
| Indica opciones /(L|l|f|)ocal/ Busca Local, local, focal
( ) Agrupar caracteres /(vocal)/ Busca vocal
[ ] Conjunto de caracteres opcionales /escrib[aoe]/ Vale escriba, escribo, escribe

La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrón. Cada modificador actúa sobre el carácter o el paréntesis inmediatamente anterior.

Descripción Ejemplo Resultado
* Repetir 0 o más veces /l*234/ Valen 234, 1234, 11234...
+ Repetir 1 o más veces /a*mar/ Valen amar, aamar, aaamar...
? 1 o 0 veces /a?mar/ Valen amar, mar.
{n} Exactamente n veces /p{2}sado/ Vale ppsado
{n,} Al menos n veces /(m){2}ala/ Vale mmala, mmmala....
{m,n} entre m y n veces /tal{1,3}a/ Vale tala, talla, tallla

Los siguientes son caracteres especiales o metacaracteres para indicar caracteres de texto no imprimibles, como puedan ser el fín de línea o un tabulador, o grupos predefinidos de caracteres (alfabéticos, numéricos, etc…)

Significado Ejemplos Resultado
\b Principio o final de palabra /\bver\b/ Encuentra ver en “ver de”, pero no en “verde”
\B Frontera entre no-palabras /\Bver\B/ Empareja ver con “Valverde” pero no con “verde”
\d Un dígito /[A-Z]\d/ No falla en “A4″
\D Alfabético (no dígito) /[A-Z]\D/ Fallaría en “A4″
\O Carácter nulo
\t Caracter ASCII 9 (tabulador)
\f Salto de página
\n Salto de línea
\w Cualquier alfanumérico,

[a-zA-Z0-9_ ]

/\w+/ Encuentra frase en “frase.”, pero no el . (punto).
\W Opuesto a \w

([^a-zA-Z0-9_ ])

/\W/ Hallaría sólo el punto (.)
\s Carácter tipo espacio (como tab) /\sSi\s/ Encuentra Si en “Digo Si “, pero no en “Digo Sientate”
\S Opuesto a \s
\cX Carácter de control X \c9 El tabulador
\oNN Carácter octal NN
\xhh El hexadecimal hh /\x41/ Encuentra la A (ASCII Hex41) en “letra A”

La tabla siguiente contiene algunos de los patrones más utilizados a la hora de validar formularios.

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

Link de interés

Saludos

promero


¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscríbes a mi feed y obtienes los artículos como este enviados automáticamente cada día hacia tu lector de feeds.

No hay comentarios todavía.

Deja un comentario

Saltos de línea automáticos, la dirección de email nunca será publicada, HTML permitido: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(requerido)

(requerido)