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() :
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
Je vous remercie de votre aide .
Partager