Remplacer tous les occurences d'un motif dans une chaîne

Signaler
Messages postés
38
Date d'inscription
dimanche 29 juin 2003
Statut
Membre
Dernière intervention
7 juillet 2006
-
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
-
bonjour

je souhaiterais pouvoir remplacer toutes les occurences une sous-chaîne par une autre dans une chaine



exemple :

j'ai ma chaine str contenant "X" : "blaXblabla+3X-bou"

je voudrais me retrouver avec : "blaYblabla+3Y-bou"

c'est à dire remplacer dans str ttes les occurences de "X" par "Y"

pour l'instant, j'utilise str=str.replace("X","Y");

ca fonctionne lorsque la sous-chaine "X" est présente une seule fois sinon ça foire

snif

comment je peux faire svp ?

merci d'avance

8 réponses

Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
t'as indexof qui renvoi -1 si la chaine n'est pas présente...



tu peux faire un index puis un replace d'une partie de la chaine.... puis tu recommence...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
Bonjour,
faut regarder une doc des "expressions rationnelles"

function chgt(avant,apres,zone)
{ var reg=new RegExp(avant,"gi");
return zone.replace(reg,apres); }

"gi" :
g = à faire pour tous les caractères
i = ne pas faire la distinction entre
Majuscules et minuscules.

Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
une expression rationelle n'est pas une chaine... avant faut transformer, ou alors c'est pas apliquable à une variable... (et c'est vachement chiant...)

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
<script type="text/javascript">

function chgt(aremplacer,remplacerpar,zone)
{ var reg=new RegExp(aremplacer,"gi");
return zone.replace(reg,remplacerpar); }

var v="Xx remplacer les X ou x par Y";

alert(chgt("x","y",v));

</script>

ça ne s'applique pas à une variable ????
c'est chiant ???
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
bah comment tu fais si t'as des / par exemple...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
ça n'a plus rien à voir avec tes affirmations ...
mais : alert(chgt("/","°",v1));
mais je pense que tu voulais dire
"" ? alors alert(chgt("%2F","°",v2));

par exemple.

Cordialement. Bul. ~
Site
~~
[mailto:marcelBultez@tiscali.fr Mail
]~
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
ce que je voulais dire c'est que ce n'est p as aplicable
directement... faut convertir la chaine... (je me suis surement mal
exprimé...) t'as pas que les / à enlever...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
33
>>ce n'est pas aplicable directement
ben ? euh ? si !
var reg=new RegExp(variable ou champ ou "quelque chose à remplacer","gi");
variable ou champ.replace(reg,variable ou champ ou "sera remplacer par");
Cordialement. Bul. ~Site~~[mailto:marcelBultez@tiscali.fr Mail]~