Interdire mots [Résolu]

Signaler
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015
-
Bonjour à la communauté !
j'ai besoin de votre aide, en effet je cherche à retirer dans un texte, par exemple, tous les : le la les du en ect.
J'ai pour se faire une fonction qui split le texte, compare chaque chaîne en nombre de caractères et d'équivalence (le = le mais le de lendemain n'est pas équivalent etc...).
Or le traitement est beaucoup trop long, surtout si l'on considère que j'ai 700 pages à balayer régulièrement.
Existerait il une expression régulière qui pourrait travailler plus rapidement ? ou un autre procédé ou une idée pour un traitement plus rapide ?

merci par avance


Voici ma fonction, elle est brut de pomme, alors excusez moi, mais elle fonctionne.


<html><head>


<script>
function eclat(){
var mots = new Array('le','la','je','et','il','ils','au','les','on','ou','est','leur','leurs','en','du','des');
var ChaineDebut = document.getElementById('test3').value;
var morceau=ChaineDebut.split(" ");


for (var a=0; a<morceau.length; a++) {


document.getElementById('test').value +=" "+document.getElementById('test2').value;
document.getElementById('countMots').value =0;document.getElementById('countCaract').value =-1;
document.getElementById('test2').value = morceau[a];
var ChaineEclat = document.getElementById('test2').value;


for (var i=0; i<mots.length; i++) {


var SousChaine=mots[i];


document.getElementById('countCaract').value=SousChaine.length;
var ExpressRegul = new RegExp(SousChaine,"gi");
var trouve=ChaineEclat.search(ExpressRegul);
document.getElementById('countMots').value=ChaineEclat.length;


if((trouve != -1)&&(document.getElementById('countCaract').value==document.getElementById('countMots').value))
{document.getElementById('test2').value ="";}
                                   }        }
}
</script>
</head>




résultat<textarea id=test cols=37></textarea>


transit<textarea id=test2 cols=37></textarea>


texte départ<textarea id=test3 cols=57>l administration lent changer latentes le donc les bons</textarea>






countMots


motscles



</html>
 

[:D][:)]

12 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
encore uen erreur d'inattention de ma part,
il fallait aussi faire :

txt.value=txt.value.replace(tmp,' ');
tu devrais résoudre "assez simplement" les restrictions dont je parlais



<hr />



Cordialement                Bul                 [mon Site]                 [M'écrire]



<hr />
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

Bonsoir à vous,

et merci encore pour ces exemples

[:D][:)]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,

ch'tit exemple avec expression régulière

var mots = new Array('le','la','je','et','il','ils','au','les','on','ou','est','leur','leurs','en','du','des');
var tmp;
var txt=document.getElementById('test3');
for ( var n=0;n<mots.length;n++ )
{
    tmp = new RegExp(mots[n]+' ','gi');
    txt.value=txt.value.replace(tmp,'');
}

une boucle malgré tout, mais je suis loin d'être un
    spécialiste ( de quoi que ce soit, et des expressions
    régulières en particulier )
ira-ce plus vite ? ionosai.
on doit pourvoir faire largement mieux...

<hr />


Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

Bonsoir et tout d'abord merci pour l'exemple,

j'ai testé, mais comme avec d'autres essais que j'ai pu faire avec d'autres fonctions j'ai toujours le même problème de parties de mots sont retirées ????
C'est pour cela que je m'étais résolu à compter le nbre de caractère avant d'effacer le mot

en reprenant votre exemple :

<html><head>


<script>function ote(){
var mots = new Array('le','la','je','et','il','ils','les','ou','est','leur','leurs','du','des','ne','de','voir','sont','donc');
var tmp;
var txt=document.getElementById('test3');
for ( var n=0;n<mots.length;n++ )
{
    tmp = new RegExp(mots[n]+' ','gi');
    txt.value=txt.value.replace(tmp,'');
}
}</script>
</head>


<textarea id=test3 cols=80>Une activité effective minimale (y compris les stages de la formation professionnelle rémunérée) est exigée d'au


moins un des membres du couple ou de la personne isolée .</textarea>


Une activité effective minimale (y compris les stages de la formation professionnelle rémunérée) est exigée d'au moins un des membres du


couple ou de la personne isolée.

[:D][:)]
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Bonjour,
function ote()
{
var mots = new Array('le','la','je','et','il','ils','les','ou','est','leur','leurs','du','des','ne','de','voir','sont','donc');
var text = document.getElementById('test3').value.split(" ");
var text2="";
for(i=0;i<text.length;i++)
{
for(j=0;j<mots.length;i++)
{
if(text[i].toLowerCase()!=mots[j]){text2+=text[i]}
}
}
document.getElementById('test3').value=text2;
}

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
en fait, il sépare les mots par des espaces, il vérifi si le mot (majuscule/minuscule confondues) est égale au un des mots "interdits", si oui il ne l'ajoute pas sinon oui.

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

Salut,

Ok pour le principe
(rectif sur un j++ au lieu de 2 i++  ligne : for(j=0;j<mots.length;i++)

mais en testant je me rends compte que les mots restant sont multipliés par xxxx  ?

merci

<html><head>


<script>function ote()
{
var mots = new Array('le','la','je','et','il','ils','les','ou','est','leur','leurs','du','des','ne','de','voir','sont','donc');
var text = document.getElementById('test3').value.split(" ");
var text2="";
for(i=0;i<text.length;i++){


for(j=0;j<mots.length;j++){
if(text[i].toLowerCase()!=mots[j]){text2+=text[i]}
}
}
document.getElementById('test3').value=text2;
}</script>
</head>


<textarea id=test3 cols=80>y compris les stages de la formation professionnelle rémunérée</textarea>


<textarea id=test2 cols=80></textarea>

[:D][:)]
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
Oui, oups... c'est pas mon jour
function ote()
{
var mots = new Array('le','la','je','et','il','ils','les','ou','est','leur','leurs','du','des','ne','de','voir','sont','donc');
var text = document.getElementById('test3').value.split(" ");
var text2="";
var go=true;
for(i=0;i<text.length;i++){
for(j=0;j<mots.length;j++){
if(text[i].toLowerCase()==mots[j]){go=false}
}
if(go){text2+=text[i]}
}
document.getElementById('test3').value=text2;
}

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

oh la !!

maintenant tout disparait ?

c'est sympas de me donner un exemple mais là tout s'efface

<html><head>
<script>
function ote()
{
var mots = new Array('le','la','je','et','il','ils','les','ou','est','leur','leurs','du','des','ne','de','voir','sont','donc');
var text = document.getElementById('test3').value.split(" ");
var text2="";
var go=true;
for(i=0;i<text.length;i++){
for(j=0;j<mots.length;j++){
if(text[i].toLowerCase()==mots[j]){go=false}
}
if(go){text2+=text[i]}
}
document.getElementById('test3').value=text2;
}</script></head>

<textarea id=test3 cols=90>le la est donc revoir</textarea>


[:D][:)]
Messages postés
450
Date d'inscription
samedi 16 avril 2005
Statut
Membre
Dernière intervention
18 avril 2007
2
remplace : if(go){text2+=text[i]}
par :if(go){text2+=text[i];go=true;}

<hr />Le travail n'a jamais tué personne, mais pourquoi prendre le rique ?
Messages postés
175
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
8 mars 2015

désolé; mais cela efface toujours tout, je vais y regarder de plus prêt ???

merci

[:D][:)]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>...parties de mots sont retirées...
    erreur de saisie :



            tmp = new RegExp(' '+mots[n]+' ','gi');




reste à traiter le cas du début, de la fin du texte, des choses comme "le," "donc." "du;"....
    mais comme ça ne l'était pas dans le script originel...


<hr />



Cordialement            Bul         [mon Site]     [M'écrire]           




<hr />