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>