Validar una cuenta bancaria en JavaScript

Hola a tod@s, he decidido inaugurar mi blog con una función que he necesitado implementar hoy en JavaScript. Después de buscar en San Google y no encontrar ningún código que me convenciera, decidí implementar mi propia función para comprobar si una cuenta bancaria es correcta en función de su dígito de control.

La función compruebaCCC(); devuelve true si la cuenta bancaria es correcta y false si no lo es.

Una cuenta bancaria está formada por 4 grupos de dígitos:

  1. Número de entidad (4 dígitos)
  2. Número de sucursal (4 dígitos)
  3. DC o número de control (2 dígitos)
  4. Número de cuenta (10 dígitos)

Si cualquiera de estos números tuviera una longitud inferior a la especificada, se debe rellenar con ceros a la izquierda hasta obtener el número de dígitos correcto. Para lo que empleamos la función rellenaCeros(numero,longitudDeseada);

El primero de los dígitos de control se obtiene de el número de entidad concatenado con el número de sucursal.

El segundo de los dígitos de control se obtiene del número de cuenta.

El algoritmo para calcular los dígitos de control es de tipo checksum y es la suma de los productos de cada dígito, empezando por la derecha, por un peso indicado en la siguiente tabla según su posición.

Posición 1 2 3 4 5 6 7 8 9 10
Peso 6 3 7 9 10 5 8 4 2 1

El resultado de dicha suma (s) tendrá el siguiente tratamiento:

dc=(11-(s mod 11))
si (dc==11) entonces dc=0
si dc (dc==10) entonces dc=1

Aquí os dejo la función en JavaScript:

function compruebaCCC(entidad,sucursal,dc,nCuenta){
	entidad = rellenaCeros(entidad,4);
	sucursal = rellenaCeros(sucursal,4);
	dc = rellenaCeros(dc,2);
	nCuenta = rellenaCeros(nCuenta,10);

	var concatenado = entidad+sucursal;
	var dc1 = calculaDCParcial(concatenado);
	var dc2 = calculaDCParcial(nCuenta);
	return (dc==(dc1+dc2));
}

function calculaDCParcial(cadena){
	var dcParcial = 0;
	var tablaPesos = [6,3,7,9,10,5,8,4,2,1];
	var suma = 0;
	var i;
	for(i=0;i<cadena.length;i++){
		suma = suma + cadena.charAt(cadena.length-1-i)*tablaPesos[i];
	}
	dcParcial = (11-(suma % 11));
	if(dcParcial==11)
		dcParcial=0;
	else if(dcParcial==10)
		dcParcial=1;
	return dcParcial.toString();
}

function rellenaCeros(numero,longitud){
	var ceros = '';
	var i;
	numero = numero.toString();
	for(i=0;(longitud-numero.length)>i;i++){
		ceros += '0';
	}	
	return ceros+numero;
}
Se sociable y comparte!

5 thoughts on “Validar una cuenta bancaria en JavaScript

  1. Lo que viene siendo de puta madre vaya!!

    • Your post will be rather good, and I’m sure some will find it itneresting because it’s about a topic that’s as widely discussed as others. Some may even find it useful.thank so much for your post.

      • fernando

        Thanks Sticy.

  2. If your articles are aylaws this helpful, “I’ll be back.”

  3. […] calcular el IBAN en JavaScript. Algunas de las funciones que aquí aparecen están explicadas en este POST. A continuación os voy a dejar una breve explicación de como se […]

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>