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.
?Ver código JAVA
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; } |
3 de abril de 2008 at 17:40
[…] 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. […]