tonytruand
Messages postés175Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention 8 mars 2015
-
15 mars 2007 à 07:40
tonytruand
Messages postés175Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention 8 mars 2015
-
16 mars 2007 à 18:00
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(" ");
document.getElementById('countCaract').value=SousChaine.length;
var ExpressRegul = new RegExp(SousChaine,"gi");
var trouve=ChaineEclat.search(ExpressRegul);
document.getElementById('countMots').value=ChaineEclat.length;
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 15 mars 2007 à 11:34
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...
tonytruand
Messages postés175Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention 8 mars 2015 15 mars 2007 à 17:39
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][:)]
Vous n’avez pas trouvé la réponse que vous recherchez ?
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 15 mars 2007 à 18:48
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 ?
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 15 mars 2007 à 18:51
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 ?
tonytruand
Messages postés175Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention 8 mars 2015 15 mars 2007 à 19:00
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++){
stfou
Messages postés450Date d'inscriptionsamedi 16 avril 2005StatutMembreDernière intervention18 avril 20073 15 mars 2007 à 19:21
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 ?
tonytruand
Messages postés175Date d'inscriptionsamedi 23 octobre 2004StatutMembreDernière intervention 8 mars 2015 15 mars 2007 à 20:04
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>