Expresiones regulares en JavaScript: Validando DNI's

·1 min read

javascript

Estaba yo acabando (a ver si es de esta) la web del hotel de mis padres y me hizo falta una función que validara el DNI de un formulario. Como ya tenía por aqui una función en JavaScript que me validaba un email a base de expresiones regulares, pues dije, vamos a ver si encuentro algo parecido para el DNI.... Pero no encontre nada, asi que me puse a mirarme esto de las expresiones regulares (regexp, que se les dice) y averigué porque no había encontrado nada: está tirado de hacer a poquito que te molestes en ver algo. Lo pongo aquí por si a alguien le sirve de algo.

1//Recibe una string y comprueba que esté en el formato (X|9)9999999-X
2function dni_correcto(dni) {
3 var er_dni = /(X|d{1})d{7}- D{1}/;
4
5 if (!er_dni.test(dni)) {
6 return false;
7 }
8 return true;
9}
1//Recibe una string y comprueba que esté en el formato (X|9)9999999-X
2function dni_correcto(dni) {
3 var er_dni = /(X|d{1})d{7}- D{1}/;
4
5 if (!er_dni.test(dni)) {
6 return false;
7 }
8 return true;
9}

Supongo que se podrá hacer mejor, pero bueno, yo estoy orgulloso de mi cutre-función y de mi primer enfretamiento con las regexp 😉

Actualización: Función mejorada, Gracias matti 😉