Fonction replace du jscript

zou -  
 zou -
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. PhP
     
    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
    3
    1. zou
       
      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
      0
  2. nadege
     
    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
    -1