REMPLACEMENT D'UN CARACTÈRE DANS UN CHAINE

francktfr Messages postés 101 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 5 novembre 2004 - 2 nov. 2003 à 06:34
pedrounet27 Messages postés 1 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 4 avril 2009 - 4 avril 2009 à 11:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/17590-remplacement-d-un-caractere-dans-un-chaine

pedrounet27 Messages postés 1 Date d'inscription samedi 2 avril 2005 Statut Membre Dernière intervention 4 avril 2009
4 avril 2009 à 11:11
Là Forcetiep, je pense que tu fais justement le contraire
Pour remplacer des "/" par des "",
préférer chaine.replace(/\//g,"\" );
forcetiep Messages postés 1 Date d'inscription mardi 24 janvier 2006 Statut Membre Dernière intervention 7 novembre 2008
7 nov. 2008 à 18:06
plus simple encore :
par exemple pour remplacer des "/" par "" et qui marche sur tout les occurrences

replace(/\\/g,"\/" );
cs_bugzilla79 Messages postés 9 Date d'inscription lundi 20 janvier 2003 Statut Membre Dernière intervention 20 mai 2005
15 oct. 2004 à 19:19
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));
phildarvador Messages postés 106 Date d'inscription jeudi 7 février 2002 Statut Membre Dernière intervention 30 novembre 2004
8 févr. 2004 à 00:12
en effet Mickeymanu , bcp + clair!
merci pour le tuyau, je jette un coup d'oeil qd j'ai 5 minutes :)
Mickeymanu Messages postés 3 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 21 août 2008
6 févr. 2004 à 19:27
chaine = chaine.replace(/a/gi," ");
/a/gi --> regular expression
recherche tout les a dans "chaine" et les remplace par des espaces.
gi --> 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 ^^)
cs_reblochon Messages postés 49 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 27 septembre 2004
7 nov. 2003 à 16:59
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
francktfr Messages postés 101 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 5 novembre 2004
2 nov. 2003 à 06:34
y a aussi :

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