Cmt supprimer d mots entre crochet? (exp reg)

riders974 Messages postés 126 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,

Comme je suis nul en expression réguliére, je cherche a savoir cmt supprimer des mots avec des crochets du style j'ai texte comme ceci par exemple:

[bleu]Je/bleu m'appelle [rouge]Toto/rouge

aprés le processus d'élimination
me retourne que le texte cad: Je m'appelle Toto

Si vous avez la solution, je vous remercie d'avance!!
Configuration: Windows Vista
Firefox 3.0.3

3 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Désolé je ne pourrais pas t'aider plus, je ne connais pas le Java Script...
    Peut-être que mon code en Pascal t'aidera... bonne chance !
    1
  2. KX Messages postés 19031 Statut Modérateur 3 020
     
    Avec quel langage travailles-tu ? Par exemple en Pascal, ça pourrait faire ceci :
    function CopieSaufCrochet(s:string):string;
    var i,j:integer;
    begin
    j:=0; result:='';
    for i:=1 to length(s) do
        begin
        if s[i]='[' then j:=j+1
                    else
        if s[i]=']' then j:=j-1
                    else
        if j=0 then result:=result+s[i];
        end;
    end;
    
    function CopieSaufSlash(s:string):string;
    var i,j:integer;
    begin
    j:=0; result:='';
    for i:=1 to length(s) do
        begin
        if s[i]='/' then j:=1
                    else
        if s[i]=' ' then j:=0;
        if j=0 then result:=result+s[i];
        end;
    end;
    
    function Simplifier(s:string):string;
    begin
    result:=CopieSaufSlash(CopieSaufCrochet(s));
    end;
    0
  3. riders974 Messages postés 126 Statut Membre 8
     
    Moi je voudrais avoir la solution en JavaScript!!

    J'ai trouver une pré-solution en java script mais y a un bug et je ne sais pa cmt le résoudre!!
    Voici ma solution:

    <script type="text/javascript">

    function traiter_keywords(){
    var text_contenu = document.getElementsByName("contenu_page")[0].value;
    var exp_reg = new RegExp("<([^<> ]*)>","g");
    var exp_spl = new RegExp("[ ;,]+","g");

    var text_keywords="";

    text_contenu = text_contenu.replace("[","<");
    text_contenu = text_contenu.replace("]",">");

    text_contenu = text_contenu.replace(exp_reg,"");

    alert(text_contenu);

    //Tableau de mots
    var lst_mots = text_contenu.split(exp_spl);

    for(var i=0; i<lst_mots.length; i++){
    if(!text_keywords.match(lst_mots[i]) && lst_mots[i].length>2) text_keywords += lst_mots[i]+" ";
    if(text_keywords.length>250) break;
    }

    document.getElementById("KeyW").value = text_keywords;
    }

    </script>

    Avec ce code, je suis obliger de remplacer les crochet par les < et > car je ne sais pas pourquoi, Java n'accepte pas \[ ou \]!!! mais le probléme, c'est que le remplacement ne se fait pas sur la totalité de la chaine text_contenu!!
    Donc si il y a plusieurs balise entre crochet, la premiére sera supprimé mais pas les suivantes!!

    La je ne sais plus cmt rsoudre mon probléme!!

    Aidez moi si vous avez la solution, merci!!
    0