Función para validar DNI o NIE en JavaScript

Cuando se valida un formulario web, sobretodo si se le están pidiendo datos del usuario, es muy común que se pida el DNI o NIE, el cual se deberá validar para minimizar los errores en el mismo. Estas primeras validaciones validaciones, se harán preferentemente en el lado del cliente para ahorrar carga al servidor y aumentar la velocidad de respuesta del navegador.

Para esta validación, se puede llamar a la siguiente función para validar DNI o NIE en Javascript, la cual devolverá true si tiene un formato válido (incluida la letra calculada para el DNI), o false en caso contrario.

// Comprueba si es un DNI correcto (entre 5 y 8 letras seguidas de la letra que corresponda).

// Acepta NIEs (Extranjeros con X, Y o Z al principio)
function validateDNI(dni) {
    var numero, let, letra;
    var expresion_regular_dni = /^[XYZ]?\d{5,8}[A-Z]$/;

    dni = dni.toUpperCase();

    if(expresion_regular_dni.test(dni) === true){
        numero = dni.substr(0,dni.length-1);
        numero = numero.replace('X', 0);
        numero = numero.replace('Y', 1);
        numero = numero.replace('Z', 2);
        let = dni.substr(dni.length-1, 1);
        numero = numero % 23;
        letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
        letra = letra.substring(numero, numero+1);
        if (letra != let) {
            //alert('Dni erroneo, la letra del NIF no se corresponde');
            return false;
        }else{
            //alert('Dni correcto');
            return true;
        }
    }else{
        //alert('Dni erroneo, formato no válido');
        return false;
    }
}

 

Deja un comentario

Esta web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está aceptando éstas y nuestra política de las mismas.

ACEPTAR
Aviso de cookies