Archivo de Abril de 2010

Validar formularios con Javascript

Viernes, 2 de Abril de 2010

Validar formularios con JavaScript mediante las expresiones regulares es una solución bastante elegante, fiable y requiere muy poco código en comparación con otras vías.

Por ejemplo, si necesitamos comprobar un número de la tarjeta de crédito podemos hacerlo de la siguiente forma:


var numTarjetaPattern=/^[0-9]{16}$/;

var numTarjeta=document.getElementById(“numTarjeta”);

if(!numTarjeta.match(numTarjetaPattern)){

alert(“Compruebe el número de la tarjeta.”);

return false;

}else{

return true;

}

Existe multitud de tutoriales sobre cómo usar expresiones regulares, por ejemplo aquí y aquí. El problema viene cuando en el campo que tenemos que comprobar aparecen caractéres que no están incluidos en la tabla ASCII. Hablando de castellano estos caractéres primeramente son las letras acentuadas y la eñe. No obstante, en JavaScript se pueden poner como códigos hexadecimales. Abajo pongo la tabla de correspondencia:

Á \uC1
á \uE1
É \uC9
é \uE9
Í \uCD
í \uED
Ñ \uD1
ñ \uF1
Ó \uD3
ó \uF3
Ú \uDA
ú \uFA
Ü \uDC
ü \uFC
¿ \uBF
¡ \uA1
\u80

Entonces, si queremos usar estas secuencias lo único que tenemos que hacer es incluirlas en el patrón, por ejemplo:

var pattern=/^[\u00f1]{1}$/;

Sólo permitirá un sólo caracter que será la Ñ.

Para permitir todas las letras del castellano posibles, además del espacio se puede usar la siguiente sentencia:

var pattern=/^/^[A-Za-z\s\u00c1\u00e1\u00c9\u00e9\u00cd\u00ed\u00d1\u00f1\u00d3\u00f3\u00da\u00fa\u00dc\u00fc]+$/;$/;