Logo JavaScript

Función para validar DNI o NIE en JavaScript

En JavaScript, Programación, Web por trellat0 Comentarios

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