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 :

Comment remplacer tous les occurences dans une variable string par une autre occuren?


Sujet :

JavaScript

  1. #1
    Battosaiii
    Invité(e)
    Par défaut Comment remplacer tous les occurences dans une variable string par une autre occuren?
    Bonjour !

    Je voudrais remplacer tous les {; par { dans le string test.
    var test = "abcd{;\n\n1234\nfor(int i=0;i<5;i++) {;\n"

    Comment faites vous ? Je sais que la fonction replace le fais
    1 seule fois.
    En l'occurence si je fais :
    test.replace("{;","{") je vais avoir la premiere occurence de remplacee
    uniquement. Donc le resultat sera :
    "abcd{\n\n1234\nfor(int i=0;i<5;i++) {;\n" a la place.
    Est ce que c'est assez clair ?
    Merci d'avance !

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 79

    Informations forums :
    Inscription : Janvier 2007
    Messages : 201
    Points : 154
    Points
    154
    Par défaut Bizarre bizarre
    Ben oui, seule la première occurence est remplacée, alors que ma doc dit que "les occurences sont remplacées" et que la fonction php : str_replace remplace toutes les occurences. Curieux ça.
    Voila un script qui remplace toutes les occurences, mais attention, si la chaine à remplacer est contenue dans la chaine remplaçante, boucle sans fin assurée !!! Donc tester avant de s'en servir !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="JavaScript" type="text/JavaScript">
    a="bbb;bbb;bbb;bbb";
    i=a.indexOf("bbb");
    while (i >= 0) {
    	a=a.replace("bbb","Bravo Belo");
    	i=a.indexOf("bbb");
    }
    alert (a);
    </scrip

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    et g ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    utilise une expression régulière
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     var test = "abcd{;\n\n1234\nfor(int i=0;i<5;i++) {;\n"
     var exp = /{;/g;
     
     test = test.replace(exp, "{");

  5. #5
    Battosaiii
    Invité(e)
    Par défaut
    La solution du dernier post marche!. Je vais l'adopter car elle consomme moins en ressource que l'autre (que j'utilisais deja).


    Malheureusement cette solution ne marche pas avec mon buffer.
    En realite je voudrais remplacer toutes les occurences de mon string buffer(buf)
    comme ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       return buf.join(";\n" + indent.get()) + ";\n"
    Donc j'ai tente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       var exp = /{;/g;
       buf.join(";\n" + indent.get()) 
       return buf.replace(exp, "{") + ";\n"
    Ca marche pas du tout !

    Des idees ?
    Dernière modification par Battosaiii ; 02/10/2007 à 11h56.

  6. #6
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par Battosaiii Voir le message
    Donc j'ai tente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       var exp = /{;/g;
       buf.join(";\n" + indent.get()) 
       return buf.replace(exp, "{") + ";\n"
    Ca marche pas du tout !

    Des idees ?
    Visiblement buf est un tableau. La méthode join() retourne une chaine de caractères, il faut donc la récupérer :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       var exp = /{;/g;
       var chaine;
       chaine= buf.join(";\n" + indent.get()); 
       chaine = chaine.replace(exp, "{") + ";\n"
       return chaine;

  7. #7
    Battosaiii
    Invité(e)
    Par défaut
    ca ne marche pas cette solution non plus...
    D'autres solutions ?

  8. #8
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Citation Envoyé par Battosaiii Voir le message
    ca ne marche pas cette solution non plus...
    D'autres solutions ?
    montre nous code JS complet, sinon on va tourner en rond un bon moment

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/03/2009, 23h42
  2. [RegEx] caractère pour remplacer tous les caractères dans une regex
    Par sp2308 dans le forum Langage
    Réponses: 6
    Dernier message: 09/02/2008, 01h06
  3. [TWebBrowser] Comment trouver tous les liens dans une page ?
    Par xenos dans le forum Composants VCL
    Réponses: 1
    Dernier message: 15/01/2006, 23h36
  4. Réponses: 3
    Dernier message: 11/12/2005, 11h15
  5. Comment accéder tous les ComboBox dans ma fiche
    Par Xavier dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/11/2005, 20h41

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