Verificación de NIF o NIE válido

El siguiente código realiza la verificación de que la cadena suministrada como entrada sea un NIF o NIE válido. Un NIE sólo lleva una X, Y o Z  antepuesta al resto de la cadena, por lo que si la cadena comienza por X, Y o Z, se elimina de la cadena a verificar.

public static boolean isNifNie(String nif){
 
   _log.debug("NIF "+nif);
   //si es NIE, eliminar la x,y,z inicial para tratarlo como nif
   if (nif.toUpperCase().startsWith("X")||nif.toUpperCase().startsWith("Y")||nif.toUpperCase().startsWith("Z"))
nif = nif.substring(1);
 
Pattern nifPattern =
Pattern.compile("(\\d{1,8})([TRWAGMYFPDXBNJZSQVHLCKEtrwagmyfpdxbnjzsqvhlcke])");
Matcher m = nifPattern.matcher(nif);
if(m.matches()){
String letra = m.group(2);
//Extraer letra del NIF
String letras = "TRWAGMYFPDXBNJZSQVHLCKE";
int dni = Integer.parseInt(m.group(1));
dni = dni % 23;
String reference = letras.substring(dni,dni+1);
 
if (reference.equalsIgnoreCase(letra)){
_log.debug("son iguales. Es NIF. "+letra+" "+reference);
return true;
}else{
_log.debug("NO son iguales. NO es NIF. "+letra+" "+reference);
return false;
}
}
else
return false;
}

Una Respuesta a “Verificación de NIF o NIE válido”

  1. Programacion en JAVA » Algoritmo de comprobación de DNI válido dijo:

    […] El siguiente código verifica que la cadena suministrada sea un DNI válido. En realidad, para que un DNI sea válido, basta con que tenga entre 1 y 8 caracteres. Si lo que se desea es verificar un NIF o un NIE, con la letra asociada, es mejor consultar la entrada verificación de NIF/NIE. […]

Deje una respuesta

Se debe registrar para escribir un comentario.