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 & search


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Ao�t 2008
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2008
    Messages : 2
    Par d�faut Fonction replace & search
    Bonjour � tous !

    Je dois inclure dynamiquement du contenu CSS dans ma page, mais avant cela, je dois remplacer dans ce contenu toute cha�ne "[PATH]" par une variable de mon choix (sachant que cette cha�ne est pr�sente plusieurs fois dans ce code).
    J'utilise donc ceci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    while (str.search('[PATH]') != -1)
    {
         str.replace('[PATH]', ma_variable);
    }
    Or la boucle est infinie, alors que je n'ai que deux [PATH] dans ma variable str. J'aimerai vraiment comprendre pourquoi cela ne marche pas.

    Pourriez-vous m'aider ?

    Cordialement,
    Lo�s

  2. #2
    Membre �m�rite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par d�faut
    c'est normal :
    tu demande de faire tant que on trouve pas [PATH]
    mais si tu [PATH] alors tu le modifie .....
    donc en fait ta condition de ne pas trouver PATH sera toujours valide ....
    il faut que tu mettes un autres cas d'arret dans la boucle
    ex : tant que je suis pas a la fin de ma chaine ........

    ou alors tu fais simplement un
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    str.replaceAll('[PATH]', ma_variable);
    sans boucle tu aura tout tes PATH remplacer ....

    ++

  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,

    pas besoin de boucle. La fonction replace utilise les expressions r�guli�res :
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
      var str = "bla bla [PATH] bla bla bla bla [PATH] bla [PATH] [PATH] bla bla";
      var ma_variable = "TADAAAAAA";
     
      str = str.replace(/(\[PATH\])/g, ma_variable);
     
      alert(str);

  4. #4
    Candidat au Club
    Inscrit en
    Ao�t 2008
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2008
    Messages : 2
    Par d�faut
    Je n'ai rien dit ! Ca marche, j'avais oubli� le "str =" avant ma fonction. Merci beaucoup pour votre aide !

    ---------------------------------------

    @laurentibus : Je ne connaissais pas la fonction replaceAll, et pour cause, Firefox ne semble pas la reconna�tre:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    Erreur*: str.replaceAll is not a function
    Fichier Source*: http://localhost/includes/javascript/window.js
    Ligne*: 142
    Cela �tant, je ne vois pas o� se trouve le probl�me dans ma fonction, il y a deux fois [PATH], donc str.search('[PATH]') doit retourner autre chose que -1. Ici je demande "tant que �a me retourne autre chose que -1", autrement dit: "tant qu'il reste [PATH] dans la variable str". Javascript v�rifie bien la condition � chaque fois, n'est-ce pas ?

    @Auteur : Le code suivant n'a pas fonctionn� :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    str.replace(/(\[PATH\])/g, path);
    Je pr�cise qu'avec str.replace('[PATH]', path), �a remplace le premier [PATH], mais pas le deuxi�me.
    Je pr�cise �galement, que je r�cup�re mon str via via la lecture d'un fichier CSS, et qu'il y a donc plusieurs lignes. En ajoutant "m" en option, j'ai toujours le m�me r�sultat :S

    Une id�e ?

  5. #5
    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
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
      var str = "bla bla [PATH] bla bla bla \nbla\n [PATH] bla [PATH] [PATH] \nbla bla";
      var ma_variable = "TADAAAAAA";
     
      str = str.replace(/\n/g, "");
      str = str.replace(/(\[PATH\])/g, ma_variable);
     
      alert(str);
    J'ai ajout� des sauts de ligne dans le texte (\n). Je les supprime avant d'appliquer l'expression r�guli�re.
    Le commutateur m (multi-lignes) n'est pas toujours pris en compte

  6. #6
    Membre �m�rite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    D�tails du profil
    Informations personnelles :
    �ge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par d�faut
    oula faut que j arr�te de dormir ....... ou alors dormir la nuit serait mieux ......


    et oui sinon auteur a raison tu peux utiliser replace avec une expression r�guli�re ce qui enl�vera toutes les occurrences

    ++

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

Discussions similaires

  1. [ODBC] Fonction Replace en ODBC
    Par Alexandre T dans le forum Access
    R�ponses: 4
    Dernier message: 10/01/2007, 11h02
  2. Fonction replace
    Par mpat dans le forum ASP
    R�ponses: 2
    Dernier message: 30/08/2005, 09h59
  3. Fonction replace
    Par pmboutteau dans le forum ASP
    R�ponses: 11
    Dernier message: 10/06/2005, 09h42
  4. PB avec la fonction replace
    Par Techman128 dans le forum C++
    R�ponses: 6
    Dernier message: 24/02/2005, 11h39
  5. Fonction replace
    Par PrinceMaster77 dans le forum ASP
    R�ponses: 5
    Dernier message: 10/06/2004, 12h18

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