Necesito el codigo de validación de una cuenta tipo "IBAN"
el formato es:
Pais D.C Banco Sucursal D.C Número de Cuenta
** ** **** **** ** **********
Es de 24 digitos.
Necesito que valide si es correcta la cuenta.
Gracias.
| |||
cuenta bancaria "IBAN" validar java. Necesito el codigo de validación de una cuenta tipo "IBAN" el formato es: Pais D.C Banco Sucursal D.C Número de Cuenta ** ** **** **** ** ********** Es de 24 digitos. Necesito que valide si es correcta la cuenta. Gracias. |
| |||
Respuesta: cuenta bancaria "IBAN" validar java. Me autorespondere...para si le puede servir a otra persona...ya la respuesta "busca en google..." a parte de para joder la pregunta no se para que sirve... public static boolean validarCuentaBancaria(String cuenta) { //Preparado para cuentas Españolas solo. final String E = "14"; final String S = "28"; if (StringUtils.isEmpty(cuenta)) { return true; } Pattern cuentaPattern = Pattern.compile("\\D{2}\\d{22}"); Matcher m = cuentaPattern.matcher(cuenta); if (m.matches()) { // cuenta cumple el patrón (24 dígitos) String dC = cuenta.substring(2, 4); String restoCuenta = cuenta.substring(4, 24); String cuentaComprobacion = restoCuenta + E + S + dC; int mod = modulo97(cuentaComprobacion); if (mod != 1) { return false; } return true; } return false; } private static int modulo97(String bban) { BigInteger b = new BigInteger(bban); b = b.divideAndRemainder(BD_97)[1]; b = BD_98.min(b); b = b.divideAndRemainder(BD_97)[1]; return b.intValue(); // return ((int)(98 - (Long.parseLong(bban) * 100) % 97L)) % 97; } Esta preparado solo para cuentas en Español..que es lo que me hacia falta y he desarrollado. Un saludo. |
| |||
Respuesta: cuenta bancaria "IBAN" validar java. VALIDAR CUENTA CORRIENTE ESPAÑOLA EN JAVA FORMATO BANCO SUCURSAL DC CCC 2100 0813 61 0123456789 public static Boolean validarCuentaBancaria(String cuenta) { Pattern cuentaPattern = Pattern.compile("\\d{20}"); Matcher m = cuentaPattern.matcher(cuenta); if (m.matches()) { // cuenta cumple el patrón (20 dígitos) String banco = cuenta.substring(0, 4); String sucursal = cuenta.substring(4,8); String dC = cuenta.substring(8, 10); String CCC = cuenta.substring(10, 20); if (!( obtenerDigito("00" + banco + sucursal ) == Integer.parseInt(String.valueOf(dC.charAt(0)))) ||!(obtenerDigito(CCC) == Integer.parseInt(String.valueOf(dC.charAt(1))))) return false; else return true; } return false; } public static int obtenerDigito(String valor) { Integer[] valores = new Integer[]{1, 2, 4, 8, 5, 10, 9, 7, 3, 6}; Integer control = 0; for (int i=0; i <=9; i++) control += Integer.parseInt(String.valueOf(valor.charAt(i))) * valores[i]; control = 11 - (control % 11); if (control == 11) control = 0; else if (control == 10) control = 1; return control; } |