Cmt supprimer d mots entre crochet? (exp reg)
riders974
Messages postés
126
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
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!!
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
-
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 ! -
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; -
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!!