Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/09/2014, 03:09
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 8 meses
Puntos: 10
Validar Cuenta Corriente e IBAN

Hola chicos.,

Tengo una función de validación de Cuenta corriente que me funciona a la smil maravillas.

El tema es que el cliente ahora quiere adaptarse a la normativa de IBAN, por lo que debo implementerale esa mejora.


¿Alguien sabe cómo se validan las cuentas con IBAN? No se ni por donde empezar, porque desconozco esta normativa, lógica, etc....

Espero vuestra ayuda.


Esta e smi función de validación de cuenta:
Código:
function validateCreditAccount (field, rules, i, options) {
    if (field.val() != "") {
        var banco = field.val().substring(0,4);
        var sucursal = field.val().substring(4,8);
        var dc = field.val().substring(8,10);
        var cuenta=field.val().substring(10,20);
        var CCC = banco+sucursal+dc+cuenta;
        if (!/^[0-9]{20}$/.test(banco+sucursal+dc+cuenta)){
            return ("Formato de Cuenta Corriente incorrecto");
        } else {
            valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
            control = 0;
            for (i=0; i<=9; i++)
                control += parseInt(cuenta.charAt(i)) * valores[i];
            
            control = 11 - (control % 11);
            if (control == 11) control = 0;
            else if (control == 10) control = 1;
            
            if(control!=parseInt(dc.charAt(1))) {
                
                return ("N&uacute;mero de Cuenta Corriente incorrecto");
            }
            
            control=0;
            
            var zbs="00"+banco+sucursal;
            
            for (i=0; i<=9; i++)
                control += parseInt(zbs.charAt(i)) * valores[i];
                
            control = 11 - (control % 11);
            
            if (control == 11) control = 0;
                else if (control == 10) control = 1;
            
            if(control!=parseInt(dc.charAt(0))) {
                return ("N&uacute;mero de Cuenta Corriente incorrecto");
            }
            
    //        return true;
        }
    }
}
Saludos.