Files
myhealth/1.sources/MyHealth/src/managedbean/common/ValidationUtils.java
mgarcianun 9859f83326 Avances en la pantalla de registro de usuarios nuevos (pacientes).
* Actualización de script para crear tablas (Todo a minusculas, no case
sensitive)
* Script de datos de pruebas de especialides médicas.
* Nuevo bean para registro de usuarios (Quidato de filtro de seguridad
de login, acceso sin login).
* Actualización de entidades JPA con campos Identity.
* Enumerado para gestionar tipos de usuarios (Paciente, Medico Familia,
Especialista y Administrador)
* Clase común para realizar validaciones (función para validar nif).
2019-11-27 00:11:21 +01:00

51 lines
1.1 KiB
Java

package managedbean.common;
/***
*
* @author Marcos García Núñez (mgarcianun@uoc.edu)
*
*/
public class ValidationUtils {
static final String NIF_LETTERS = "TRWAGMYFPDXBNJZSQVHLCKE";
static final String NIE_LETTERS = "XYZ";
/**
*
* @param nif NIF a validar
* @return true si es válido, false en otro caso
*/
public static boolean isValid(String nif) {
if (nif == null)
return false;
nif = nif.toUpperCase().replace("-", "").replace(".", "");
if (nif.length() < 2 || nif.length() > 9)
return false;
if (nif.startsWith("X")) {
nif = nif.replace('X', '0');
} else if (nif.startsWith("Y")) {
nif = nif.replace('Y', '1');
} else if (nif.startsWith("Z")) {
nif = nif.replace('Z', '2');
}
char letra = nif.charAt(nif.length() - 1);
if (NIF_LETTERS.indexOf(letra) < 0)
return false;
String numbers = nif.substring(0, nif.length() - 1);
try {
if (NIF_LETTERS.charAt(Integer.parseInt(numbers) % 23) == letra)
return true;
} catch (Exception ex) {
return false;
}
return false;
}
}