Vérification de validité d'un rib

Contenu du snippet

Une source qui manquait sur ce site.

Cette fonction sert à vérifier qu'un RIB est valide
Elle accepte 3 ou 4 arguments :
1/ Si 3 arguments sont passés (banque 5 chiffres, guichet 5 chiffres, n° de compte 11 caractères alpha), la fonction renvoie la clé RIB
2/ Si 4 arguments sont passés (les trois premiers plus la clé RIB, 2 chiffres), la fonction renvoie un booléen : true si le RIB est Ok, false autrement.

La fonction commence par convertir toutes les lettres du numéro de compte (cas des clients Banque de France, la poste, etc...) en chiffres selon la table de correspondance donnée par tab et tab1. C'est ce que fait la boucle while.

L' algorithme utilisé pour calculer la clé RIB est assez tordu, aussi ne le commenterais-je pas, le code est assez simple. (Pour mémoire, bqe%97 calcule le reste de la division de bqe par 97.)

L'algorithme est utilisé par toutes les banques de france et de Navarre. Pour les comptes étrangers, je ne sait pas (Si vous avez des infos à ce sujet, je suis preneur !)

Source / Exemple :


function isRIBvalid()
	{
	
	if (isRIBvalid.arguments.length>=3)
		{
		var bqe=isRIBvalid.arguments[0];
		var gui=isRIBvalid.arguments[1];
		var cpt=isRIBvalid.arguments[2].toUpperCase();

                                // Conversion du numero de compte en chiffres
		var tab= "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		var tab1="123456789123456789234567890123456789".split("");
		
                                while (cpt.match(/\D/) != null)
			cpt=cpt.replace(/\D/, tab1[tab.indexOf(cpt.match(/\D/))]);
		var cp=parseInt	(cpt, 10);

		//Calcul clé RIB
		a=bqe%97;
		a=a*100000+parseInt(gui, 10);
		a=a%97;
		a=a*Math.pow(10, 11) + cp;
		a=a%97
		a=a*100;
		a=a%97
		a=97-a;
		if (isRIBvalid.arguments.length>3)
			return isRIBvalid.arguments[3]==a;
		else
			return a;
		}
	else
		{
		return false;
		}
	}

Conclusion :


Il est hors de question que je fasse apparaître ici des RIB existants pour permettre de vérifier cette source, pas plus que je ne mettrais d'exemples générés par cette même source, ça ne rimerait à rien, donc si vous voulez tester, utilisez votre propre RIB ... ou celui de vos parents.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.