begin process at 2010 02 09 20:09:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > RECHERCHER ET REMPLACER UN MOT DANS UN TEXTE

RECHERCHER ET REMPLACER UN MOT DANS UN TEXTE


 Information sur la source

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :rechercher, remplacer, texte Niveau :Initié Date de création :25/10/2007 Date de mise à jour :18/02/2009 10:48:22 Vu / téléchargé :6 921 / 254

Auteur : lgh

Ecrire un message privé
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Un script de recherche des mots d'un texte: 2 versions, la première pour Internet Explorer sur la base d'une source trouvée sur ce site, simplifiée (débarassée de son formulaire) arrangée (alertes diverses) dotée d'une fonction de remplacement; la seconde pour Opera entièrement nouvelle.
Il est ici proposé prèt à l'emploi. 1 document en xhtml valide et 1 document js.

Source

  • function remplacer()
  • {
  • var j;
  • if (t1.value == "" || t2.value == "") alert('Choisissez un mot à chercher et/ou son remplaçant !');
  • else
  • {
  • aire.focus();
  • champ = aire.createTextRange();
  • for (j = 0; j <= a && (action = champ.findText(t1.value)) != false; j++)
  • {
  • champ.moveStart('character', 1);
  • champ.moveEnd('textedit');
  • }
  • if (action)
  • {
  • champ.moveStart('character', -1);
  • champ.findText(t1.value);
  • champ.select();
  • champ.scrollIntoView();
  • a++;
  • if (confirm('Voulez vous remplacer le mot ?'))
  • {
  • champ.text = t2.value;
  • document.execCommand('unselect');
  • a--;
  • b = 1;
  • }
  • }
  • else
  • {
  • if (a > 0) {alert('L\'opération est terminée !'); if(document.selection) {a = 0; b = 0; document.execCommand('unselect'); return false;}}
  • if (b > 0) {alert('L\'opération est terminée !'); if(document.selection) {a = 0; b = 0; document.execCommand('unselect');}}
  • else {alert('Le mot a remplacer n\'est pas dans le document !'); a = 0; b = 0;}
  • }
  • }
  • }
function remplacer()
{
 var j;
 if (t1.value == "" || t2.value == "") alert('Choisissez un mot à chercher et/ou son remplaçant !');
 else
 {
  aire.focus();
  champ = aire.createTextRange();
  for (j = 0; j <= a && (action = champ.findText(t1.value)) != false; j++) 
  {
   champ.moveStart('character', 1);
   champ.moveEnd('textedit');
  }
  if (action) 
  {
   champ.moveStart('character', -1);
   champ.findText(t1.value);
   champ.select();
   champ.scrollIntoView();
   a++;
   if (confirm('Voulez vous remplacer le mot ?'))
   {
    champ.text = t2.value;
    document.execCommand('unselect');
    a--;
    b = 1;
   }
  } 
  else
  {
   if (a > 0) {alert('L\'opération est terminée !'); if(document.selection) {a = 0; b = 0; document.execCommand('unselect'); return false;}}
   if (b > 0) {alert('L\'opération est terminée !'); if(document.selection) {a = 0; b = 0; document.execCommand('unselect');}}
   else {alert('Le mot a remplacer n\'est pas dans le document !'); a = 0; b = 0;}
  } 
 }
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

29 octobre 2007 11:17:49 :
Différences variables locales, variables globales. Attribut name et id.
29 octobre 2007 11:20:24 :
Différences variables locales, variables globales. Attributs name et id en doublons.
14 novembre 2007 19:24:11 :
Suite à la demende formulée par un fidèle du site, le script permet cette fois de tenir compte de la casse du texte recherché.
07 novembre 2008 09:46:22 :
Avec la source DHTML pour I.E. une source JS pur qui fonctionne avec Opéra 9.6
08 novembre 2008 09:52:23 :
Corrige un bug de recherche des expressions contenant une parenthèse ou un crochet.
18 février 2009 10:47:47 :
Modification du commentaire d'accompagnement de la source.
18 février 2009 10:48:22 :
Modification du commentaire d'accompagnement de la source.

 Sources du même auteur

Source avec Zip UNE CALCULATRICE
Source avec Zip PALETTE DE COULEURS
Source avec Zip LES PHASES DE LA LUNE
Source avec Zip LE MENU FICHIER DES APPLICATIONS
Source avec Zip UN MENU, UNE BARRE DE MENUS!

 Sources de la même categorie

Source avec Zip MOOTABLEAU par Miky76
Source avec Zip CALCULER VOTRE IMC par lesnouesremy
CONSOLE DOS par djebbipgm
Source avec Zip PLUGIN JQUERY ARTE: AJOUTER DU TEMPS REEL SUR VOS PAGES WEB par arthurobriot
FAIRE UN FILTRE DES VILLES par scropfi01

 Sources en rapport avec celle ci

FONCTION BLINK ( TESTÉE SOUS FF ) PORTABILITÉ IE OP ET GC EN... par xloadx
AFFICHE DE 1 A PLEIN DE MESSAGES DANS LA BARRE DE STATUT DU ... par kangourouxxx
Source avec Zip LECTURE ET RÉCUPÉRATION DES LIGNES D'UN FICHIER TEXTE par PetoleTeam
Source avec Zip REMPLACER PLUSIEURS MOTS ET CARACTÈRES DANS UN CHAMP par abdelaziz_info
RECHERCHE ET REMPLACEMENT DE MOT INTERDIT SUR VALIDATION DE ... par Fwdavy

Commentaires et avis

Commentaire de XtremDuke le 25/10/2007 16:36:38

Je rentre pas dans les détails mais tu as oublié de déclarer tes objets.

var air = document.getElementById('air'); // par exemple...

Commentaire de lgh le 26/10/2007 07:32:08

Bonjour,
Une précision afin de répondre à xtrem...
Le code proposé ci-dessus n'est qu'un extrait de la source.
Tout est dans le zip.
LGH

Commentaire de XtremDuke le 26/10/2007 13:28:25

Je ne parlais pas de l'extrait mais bel et bien de ta source.
Tu ne peux pas utiliser <body onload="aire.focus();"> si tu n'a pas définis "aire" au préalable. "air" est l'identifiant de ton objet, pas ton objet. Et c'est la même chose pour t1, t2 etc...

Commentaire de lgh le 27/10/2007 14:36:17

Bonjour xtrem...,
Si, je peux utiliser aire sans l'avoir déclaré au préalable, de même pour t1 et t2. Ils ne sont que des valeurs des attributs id et name des éléments textarea et input dans le document html.
(NB: Dans le doute j'ai feuilleté divers tutoriels y compris Introduction au javascript sur ce site et rien de ce que tu avances n'est précisé...).
LGH

Commentaire de snpier wolf le 29/10/2007 09:06:01

bonjours,
bon normalement je "fait" du c++, mais le javasript je trouve sa asser fort bravo pour ton code.
A++

Commentaire de roro06 le 29/10/2007 09:43:37 1/10

Bonjour

Il n'y a qu'IE qui accepte <body onload="aire.focus();"> sans avoir au préalable déclaré ton objet, comme le fait très justement remarquer XtremDuke. FFx renvoie comme messages d'erreur : "aire is not defined" et "t1 is not defined"

Petit bug : la fonction "remplacer" ne marche pas après utilisation de "chercher"

Commentaire de lgh le 29/10/2007 10:13:32

Bonjour,

Ce que je pense de Firefox ?
Je ne sais que dire.
LGH

Commentaire de roro06 le 29/10/2007 10:54:30

Bonjour

C'était pas le but de mon commentaire, je ne vais pas entrer dans des trolls stupides et stériles, mais le développement javascript necessite de s'assurer du fonctionnement sur un maximum de plateformes possibles.

Commentaire de lgh le 29/10/2007 11:44:19

Bonjour roro,

J'aimerais bien lire la référence sur laquelle tu t'appuis. Cela me serait bien utile.
Mais en attendant, et même si firefox est un peu sensible, je me permes d'insister... Nulle part je n'ai rencontré d'obligation de "déclaration d'objet" dans le cas de figure qui nous préoccupe ici.
A tout hazard, j'ai repris la source en doublant les attributs des balises d'input et de textarea (xhtml transitional) et j'ai fait la différence entre les variables du script mais je ne vois pas ce que je peux faire de plus.
LGH  

Commentaire de XtremDuke le 29/10/2007 17:14:36

As-tu testé ta source sous Safari ?

Commentaire de lgh le 30/10/2007 11:26:18

Bonjour,
Je viens de vérifier le fonctionnement de la source sur firefox.
1/ Celui-ci ne demande pas de déclaration mais un formulaire pour fonctionner (or le xhtml ne le rend plus obligatoire...).
2/ Celui-ci ne reconnait semble-il pas les méthodes DHTML employées telles "objet.createTextRange()".
Celles-ci serait sauf erreur ou omission donc, exclusives IE.
Safari?

LGH

PS: A qui dois-je cette note encourageante, curieuse application de la charte!

Commentaire de lgh le 31/10/2007 10:53:51

Bonjour,
Suite et fin pour cette source...
Essai avec opéra 9.22.
La boucle (for...) ne fonctionne pas.
L'absence de formulaire dans le document principal n'est par contre (et par rapport à firefox) pas génante.
Conclusion, méthodes de recherche par traitement d'un TextRange, IE strictement (?).

LGH

Commentaire de Fwdavy le 05/11/2007 16:08:46

Ca ne remplace même pas tus les mots mais juste le premier qui est trouvé...puis ca ne controle pas le mot minuscule / majuscule. Puis la compatibilité avec les autres navgateur est importante, on parle d'une technologie Web pas d'une appli en local -_-

Commentaire de Fwdavy le 05/11/2007 16:42:22

Il y'avais plus simple et mieux a faire :

<script>
function chercheRemplace( text, stringToFind, stringRemplacement, champDeSortie )
{
var text = text.toString() ;
var maReg = new RegExp( stringToFind, "gi") ;
var resultat = text.replace( maReg, stringRemplacement ) ;

if ( text.search( maReg ) == -1 )
alert ( "Désolé le mot " + stringToFind.toUpperCase(stringToFind) + " n\'pas été trouvé" ) ;
else
champDeSortie.value = resultat ;
}
</script>
<form>
<textarea name="aireDeTexte" cols="75" rows="7">Saisissez ici votre texte</textarea>
<br><br> Rechercher : <input type="text" name="motAChercher">
<br><br> Remplacer par: <input type="text" name="motDeRemplacement">
<br><br>
<input type="button" value="Rechercher et Remplacer" onClick="chercheRemplace( this.form.aireDeTexte.value, this.form.motAChercher.value, this.form.motDeRemplacement.value, this.form.aireDeTexte )">
</form>

Commentaire de malalam le 07/11/2007 00:42:03 administrateur CS

Hello,

@LGH => IE n'est pas très réputé pour son support inconditionnel des standards. Enfin si, des standards microsoft ;-)
Bref, attaquer, comme tu le fais, le DOM directement via la valeur de l'attribut name d'un élément html n'est pas du DOM. Le DOM est strict...et IE trop permissif. Il n'y a guère qu'IE qui acceptera ce code car la plupart des autres navigateurs récents suivent beaucoup mieux le Document Object Model.
Quant à createTextRange, c'est effectivement, encore une fois, une spécificité IE, et uniquement IE. Il y a d'autres moyens de faire, en respectant le DOM, ceci dit. Même si IE propose des spécificités bien pratiques, c'est vrai. Mais comme le soulignent tes petits camarades de commentaire, le web, c'est vaste, et il vaut mieux faire en sorte de s'adapter aux utilisateurs, plutôt que de les forcer à utiliser des outils qu'ils n'ont pas envie d'utiliser. Faut bien respecter les minorités :-)

Commentaire de jdmcreator le 01/03/2009 01:26:56

Bonjour,

J'ai testé avec Safari et ça ne fonctionne pas ;)

A+

JDMCreator

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

pour remplacer du texte ??? [ par CoChOnOu ] hello à tous,voilà, dans ma page j'ai un tableau, hors, je voudrais via un javascript remplacer le contenu d'une des cases.En clair, j'ai :&lt;tr&gt;& Rechercher dans un fichier texte [ par gg16819 ] BonjourJe souhaiterais faire un petit moteur de recherche en javascript. Pour cela, je dois pouvoir ouvrir des fichiers externes (html et texte) et pa remplacer un retour à la ligne dans une zone de texte [ par nours2001 ] Bonsoir,Je récupère le contenu d'une zone de texte multiligne et je voudrais l'afficher dans une nouvelle fenêtre. le problème, c'est qu'il faudrait q remplacer texte sélectionné [ par eax ] salut c encore moi je voudrais juste savoir si on peut prendre la partie sélectionnée d'un textarea, la modifier, et la remettre au même endroitje m'e Remplacer certain caracteres dans une AREA TEXTE [ par supergrey ] Bonjour, j'ai un formulaire sur une page avec un champ texte ou lutilisateur inscrit un message, je voudrais qu'avant d'envoyer son message a la page Probleme dans ma fonction Rechercher Remplacer [ par Jarod1980 ] Jarod_Delaware PB affichage avec document.getElementById(texte).innerhtml [ par telecofr ] Salut,  sur mon site, j'ai mis un aperçu direct lors de l'écriture des messages du livre d'or.  Mon code est le suivant: Code Javascript :function Rem Remplacer du texte par une image [ par rorkaii ] Salut à tous, j'ai recherché "un peu" sur le site sans trouvé mon bonheur, alors que je sait que ça existe.Voilà mon problème, en me baladant sur dive Remplacement avec RegExp [ par XelectroX ] Bonjour,Je cherche depuis 1h comment remplacer une string par RegExp :J'ai une fonction degrade(texte, color1, color2) qui me revois du texte traité.E Remplacer un texte selon l'ordre dans lequel il a été trouvé [ par jdmcreator ] Bonjour ! J'ai un problème. Je voudrais remplacer du texte dans un textarea par un autre à l'aide d'une fonction. Jusque là, pas de problème, il en e


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales