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; }
Blog sobre los ciclos de FP a distancia de Informática (ASIR, DAM y DAW) y sus módulos profesionales
Últimos Comentarios
martes, 27 de enero de 2015
Verificación de NIF o NIE válido
Un posible código podría ser este:
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario