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 :

Fonction replace et expressions régulières


Sujet :

JavaScript

  1. #1
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut Fonction replace et expressions régulières
    Bonjour,

    J'aimerai remplacer certaines lettres par dans chiffres dans ma chaine.
    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numcompte = document.getElementById('numcompte').value.replace("A","1");
    Le A est bien remplacé par un 1. Comme je n'ai pas envie de répéter cette ligne 26 fois, je me suis dis qu'il était mieux d'utiliser une expression régulière pour le motif recherché. Je fais donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var reg1=new RegExp("(A|J)", "gi");
    numcompte = document.getElementById('numcompte').value.replace(reg1,"1");
    Mais là plus rien ne marche. J'ai essayé avec plusieurs expressions régulières mais ca n'a pas l'air de fonctionner du tout, alors qu'à priori, replace fonctionne avec des expressions régulières.

    Une idée ?

    Merci

  2. #2
    Membre chevronné
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Citation Envoyé par Oluha Voir le message
    Bonjour,

    J'aimerai remplacer certaines lettres par dans chiffres dans ma chaine.
    Si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numcompte = document.getElementById('numcompte').value.replace("A","1");
    Le A est bien remplacé par un 1. Comme je n'ai pas envie de répéter cette ligne 26 fois, je me suis dis qu'il était mieux d'utiliser une expression régulière pour le motif recherché. Je fais donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var reg1=new RegExp("(A|J)", "gi");
    numcompte = document.getElementById('numcompte').value.replace(reg1,"1");
    Mais là plus rien ne marche. J'ai essayé avec plusieurs expressions régulières mais ca n'a pas l'air de fonctionner du tout, alors qu'à priori, replace fonctionne avec des expressions régulières.

    Une idée ?

    Merci
    Ca dépend, tu remplaces systématiquement le charactère par son positionnement dans l'alphabet?

    Parce que le cas échéant, vu que javascript n'a pas la notions de caractères, il te faut créer un tableau de coorespondance.

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour Oluha,

    Je n'ai aucun problème :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     var numCompte = "24a5j-565s4-dJe4v-b2b7s-dfg78-ezA2A-aazjj";
     var resultat;
     
     var reg1=/(A|J)/gi;
     resultat = numCompte.replace(reg1,"1");
     
     alert( numCompte+"\n"+resultat);

    [edit]
    Avec le code ci-dessous, je n'ai pas de problème non plus
    Code html : 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
     
    <html>
    <head>
    <title></title>
    <script type="text/javascript">
    <!--
    function test()
    {
     var numCompte = document.getElementById("idText").value;
     var resultat;
     
     var reg1 = new RegExp("(A|J)","gi");
     resultat = numCompte.replace(reg1,"1");
     
     alert( numCompte+"\n"+resultat);
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="text" id="idText"/>
    <input type="button" onclick="test()" value="tester" />
     
    </body>
     
    </html>
    [/edit]

  4. #4
    Membre Expert Avatar de Oluha
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 183
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 183
    Par défaut
    Bon en fait l'erreur venait d'autre chose, la syntaxe est effectivement bonne
    On va dire que c'est parce que c'était vendredi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegExp] Replace et expression régulière
    Par sapajou69 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/10/2013, 19h00
  2. fonction test caractère spéciaux ou Expression régulière
    Par bruman dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 02/10/2008, 11h23
  3. [expression régulières] utilisation dans str.replace()
    Par PoZZyX dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 15/05/2008, 17h57
  4. Réponses: 10
    Dernier message: 15/03/2008, 06h56
  5. Fonction InStr et expression régulière
    Par lyxthe dans le forum Access
    Réponses: 7
    Dernier message: 24/10/2006, 11h03

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