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 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]+$/;$/;