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