begin process at 2010 03 21 14:21:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaire

 > REMPLACEMENT D'UN CARACTÈRE DANS UN CHAINE

REMPLACEMENT D'UN CARACTÈRE DANS UN CHAINE


 Information sur la source

Note :
6,5 / 10 - par 4 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaire Niveau :Débutant Date de création :01/11/2003 Vu :23 640

Auteur : phildarvador

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

 Description

Hello,

J'ai remarqué il y a peu que la fonction str.replace("x","x"); ne fonctionne que pour la première occurence du caractère que l'on souhaite remplacer... Pas très pratique, donc voici une fonction qui remplace tous les caractères trouvés dans une chaine (là c'est une apostrophe).

Source

  • <html>
  • <head>
  • <script language="Javascript">
  • function Remplacer()
  • {
  • var a, tmp;
  • tmp = "";
  • a = document.formtest.texttest.value;
  • for(var i = 0; i < a.length; i++)
  • {
  • tmp = tmp + a.charAt(i);
  • if (a.charAt(i) == "'")
  • {
  • tmp = tmp.replace("'","&#39;");
  • }
  • }
  • a = tmp;
  • alert(a);
  • }
  • </script>
  • </head>
  • <body>
  • <form name="formtest">
  • <input type="text" name="texttest">
  • <input type="button" name="bnttest" value="Change!" onclick="Remplacer();">
  • </form>
  • </body>
  • </html>
<html>
<head>
<script language="Javascript">
function Remplacer()
{
var a, tmp;
tmp = "";
a = document.formtest.texttest.value;

for(var i = 0; i < a.length; i++)
{
tmp = tmp + a.charAt(i);

	if (a.charAt(i) == "'")
	{
	tmp = tmp.replace("'","&#39;");
	}
}

a = tmp;
alert(a);
}
</script>
</head>

<body>
<form name="formtest">
<input type="text" name="texttest">
<input type="button" name="bnttest" value="Change!" onclick="Remplacer();">
</form>
</body>
</html>



 Sources de la même categorie

DÉSACTIVER UN BOUTON SUBMIT APRÈS ENVOI DU FORMULAIRE par SoftDeath
IMPLEMENTATION DE RANDOM PERSONNALISÉ par ousous
IMPLEMENTATION DE HASHTABLE par ousous
JAVASCRIPT.UTIL.ITERATOR par ousous
Source avec Zip Source avec une capture PALETTE DE COULEURS par titnome

Commentaires et avis

Commentaire de francktfr le 02/11/2003 06:34:59

y a aussi :

function Remplace(str,find,rep){
while(str.indexOf(find) &gt; -1){str = str.replace(find,rep)}
return(str)
}
// exemple :
alert(Remplace("il etait uine fois dans les bois","e","a"))

Commentaire de reblochon le 07/11/2003 16:59:44

y a aussi

function Remplace(str,find,rep){
  var reg = new RegExp(find,"gi")
  return(str.replace(reg,rep));
}

Pas de boucle, pas de rappel de "replace" à chaque remplacement.
Si vous voulez garder la casse (minuscules/majuscules):
      var reg = new RegExp(find,"g")

A+
Philippe

Commentaire de Mickeymanu le 06/02/2004 19:27:55

chaine = chaine.replace(/a/gi," ");
/a/gi --&gt; regular expression
recherche tout les a dans "chaine" et les remplace par des espaces.
gi --&gt; g = recherche globale
         i = ignore la casse

Phildarvador renseigne toi sur les expressions régulières (ou regexp).
Si tu met qu'un caractère ou une chaine il ne sera cherché qu'une fois.
/toto/gi cherche tout les "toto" dans la chaine. "g" pour une recherche globale (donc tant qu'il n'est pas au bout de ta chaine de caractères) et "i" pour ignorer la casse.

A bientôt
P.A.: Reblochon je reprend en gros ce que tu dis mais j'espère l'avoir rendu un peu plus clair ^^)

Commentaire de phildarvador le 08/02/2004 00:12:18

en effet Mickeymanu , bcp + clair!
merci pour le tuyau, je jette un coup d'oeil qd j'ai 5 minutes :)

Commentaire de bugzilla79 le 15/10/2004 19:19:17

Hello à tous, j'ai fait cette fonction qui permet de paramétrer le controle sur lequel doit agir le remplacement, la chaine à chercher, la chaine de remplacement.

function replaceString(strCtrl, strToReplace, strToReplaceWith){
   var ctrl = document.getElementById(strCtrl);
   var strTemp = "";
   for(i = 0; i < ctrl.value.length; i++){
      (ctrl.value.charAt(i) == strToReplace) ? strTemp += strToReplaceWith : strTemp += ctrl.value.charAt(i);
   }
   ctrl.value = strTemp;
}


L'appel de la fonction se fait soit par lien soit par événement sur un élément de formulaire.
/!\ Attention : le premier argument de la fonction doit impérativement être entre guillemets simples (sinon ça déconne) et si vous cherchez à remplacer des guillemets simples ou des guillemets doubles, utilisez String.fromCharCode(indexUnicodeDuCaractere) sinon ça plante (même si vous utilisez le caractère d'échappement).

Dans l'appel ci-dessous j'ai remplacé la virgule par le point (utile dans un formulaire où on doit tester une valeur décimale par ex ou si on doit taper une instruction SQL) :

replaceString('PanQte', String.fromCharCode(44), String.fromCharCode(46));

Commentaire de forcetiep le 07/11/2008 18:06:12

plus simple encore :
par exemple pour remplacer des "/" par "\" et qui marche sur tout les occurrences

replace(/\\/g,"\/" );

Commentaire de pedrounet27 le 04/04/2009 11:11:05

Là Forcetiep, je pense que tu fais justement le contraire
Pour remplacer des "/" par des "\",
préférer   chaine.replace(/\//g,"\\" );

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

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,390 sec (4)

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