[RESOLU] Erreur sur la fonction replace

Eléphant du PHP | 97 Messages

05 mars 2012, 12:27

Bonjour,

je souhaiterai récupérer une chaine de caractère rentrée en formulaire mais en remplaçant les "_" par des " ".
Pour cela, j'ai donc utilisé la fonction replace. Mais en l'utilisant, elle me supprime bien le premier underscore par l'espace, mais pas le reste.

[javascript]
var a = document.getElementById("id").value;
var b = document.getElementById("id").value;

var ent = a.substring(0, a.length-6 );
var col = b.substring(0, b.length-6);
alert (ent);
alert (col);

var offre_ent=ent.replace("_"," ");
var offre_col=col.replace("_"," ");
alert (offre_ent);
alert (offre_col);
[/javascript]

Au début je récupère la chaine de caractère que je souhaite : OK
Ensuite je ne récupère que la chaine en supprimant les 6 derniers caractères : OK
Enfin, je remplace les "_" par les " " : pas tout à fait OK

Au final je peux avoir ceci :
ent = bonjour_a_tous
offre_ent = bonjour a_tous

Donc ma question est la suivante : comment faire pour que tous les underscore soient remplacés par des espaces comme je le souhaite ?

Par avance, merci
Modifié en dernier par zeus le 07 mars 2012, 13:10, modifié 2 fois.
Raison : Remplacement des balises [code] en balises [javascript]

Eléphant du PHP | 209 Messages

05 mars 2012, 14:48

Salut,

La fonction replace prend une expression régulière en premier paramètre : http://www.toutjavascript.com/reference ... ef=replace

Code : Tout sélectionner

var str = "bonjour_a_tous"; str = str.replace(new RegExp("(_)", "g"), " "); window.alert(str);
De cette manière ça fonctionne ;)

++