Fonction replace du jscript

je fais des pages asp en javascript et la fonction replace ( de String) ne remplace pas toutes les occurences que je veux elle remplace juste la 1ère. et elle n'accepte que 2 arguments.
y'aurait il une solution (ne me dites fais de l'asp avec vbscript)

2 réponses

  1. Salut zou

    La methode replace() de l'objet string attend en effet 2 paramètres.
    Cependant le 1er paramètre peut être une simple chaîne ou, et c'est là tout l'intérêt, une expression régulière.

    Ex : voici un petit code HTML

    <html>

    <head>
    <title>affiche_date</title>
    <script language="JavaScript1.3">
    <!--

    var txt="Ceci est juste une chaîne de test"
    alert(txt.replace("e","E"))

    // -->
    </script>
    </head>
    <body>
    </body>
    </html>

    Ce script va afficher une bôite de dialogue avec :

    "CEci est juste une chaîne de test"

    Donc seule la 1èere occurence de la lettre "e" est remplacée

    Maintenant si j'introduis une expression régulière, le script devient :

    <html>
    <head>
    <title>affiche_date</title>
    <script language="JavaScript1.3">
    <!--

    var re=/e/g;

    var txt="Ceci est juste une chaine de test"
    alert(txt.replace(re,"E"))

    // -->
    </script>
    </head>
    <body>
    </body>
    </html>

    Ce script va afficher une boîte de dialogue avec :

    "CEci Est justE unE chaînE dE tEst"

    Toute les occurrences sont remplacées.

    L'expression régulière elle-même est : /e/g

    Une expression régulière est tjrs encadrées par 2 signes "/" .
    Au mileu on met ce qu'on appelle un modèle ou pattern. Celui-ci peut être une simple chaîne de caractères (attention tous les carctères ne sont pas acceptés tel quel !) mais également comprendre un nombre de paramètres très étendus : je te renvoies à la documentation des expressions régulières pour le détail de tous les paramètres possibles ... et ils ont nombreux !
    D'un autre côté cela rend les expressions régulières très très puissantes.

    Enfin la lettre "g" à la fin indique que l'expression régulière porte sur la globalité de la chaîne : c'est ce qui fait que ttes les occurrences sont remplacées.

    Allez zou au boulot ... :)

    @+
    Philippe
    1. la vache !!!!! quand je pense qu'il aurait pu ajouter un 3ème paramètre !!!! en vb c + facile.
      où je peux la trouver cette doc (car moi j'ai jamais entendu parler de ce truc là)
      merci
  2. Tu peux intégrer du javascript dans du vbscript mais je ne sais plus comment je faisais.Il y a une façon de contourner le problème : une astuce
    Si cela t'intéresse je peux te fournir cela demain.
    Bon courage