IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Utilisation de la fonction replace() avec une regexp


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par d�faut 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 : 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);            
            }
        }
    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 .

  2. #2
    Membre �clair� Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    D�tails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par d�faut
    Et j'ai envie de crier "Bouleeeet !".

    le replace ne modifie pas la valeur... Il faut donc l'assigner � une nouvelle variable pour le r�cup�rer.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    var newText = text.replace(/RegExp/gi,"1");
    D�sol� d'avoir post� pour �a -__-.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 11/05/2015, 14h55
  2. R�ponses: 3
    Dernier message: 03/03/2010, 19h05
  3. utilisation de la fonction Partdate() dans une requ�te
    Par jm6570 dans le forum Requ�tes et SQL.
    R�ponses: 3
    Dernier message: 01/02/2010, 11h55
  4. Utilisation de la fonction TOP avec une jointure
    Par pc75 dans le forum Requ�tes et SQL.
    R�ponses: 8
    Dernier message: 06/07/2007, 08h11
  5. fonctions stock�es avec une table en argument
    Par bdkiller dans le forum PostgreSQL
    R�ponses: 2
    Dernier message: 08/10/2004, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo