Utilisation de la fonction replace() avec une regexp
Bonjour,
Dans le cadre d'un calcul de cl� RIB, je dois utiliser un algorithme (visible ici) pour remplacer, si un compte contient des lettres, ces m�mes lettres par un chiffre.
J'ai donc utilis� des expressions r�guli�res pour ce faire, avec la fonction replace() :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
var accountNumber = "BCDEFGHIJKL"
//Mise en place des masques pour les expressions régulières
var arrayRegEx = new Array(9);
//On va assigner à chaque index du tableau une expression
arrayRegEx[0] = /(a|j)/gi;
arrayRegEx[1] = /(b|k|s)/gi;
arrayRegEx[2] = /(c|l|t)/gi;
arrayRegEx[3] = /(d|m|u)/gi;
arrayRegEx[4] = /(e|n|v)/gi;
arrayRegEx[5] = /(f|o|w)/gi;
arrayRegEx[6] = /(g|p|x)/gi;
arrayRegEx[7] = /(h|q|y)/gi;
arrayRegEx[8] = /(i|r|z)/gi;
//On parcourt le tableau de regex, si on trouve une correspondance, on remplace
for (var regExLength = 0; regExLength < arrayRegEx.length; regExLength++) {
var currentRegEx = arrayRegEx[regExLength];
if (accountNumber.match(currentRegEx)) {
//Ca correspond, on remplace le caractère par l'index + 1 (car le tableau commence à 0)
var newValue = (regExLength + 1).toString();
accountNumber.replace(currentRegEx, newValue);
}
} |
Malheureusement, le replace ne fonctionne pas, � l'arriv�e, j'ai toujours cette valeur : "BCDEFGHIJKL". Pourtant, j'ai autoris� le multi replace avec g, j'ignore la casse avec i, et il passe bien dans le if quand une regex correspond...
Je vous remercie de votre aide :).