Page 1 sur 1

bug avec replace ??

Posté : 27 mars 2008, 16:13
par Devether
Bonjour,

Je viens de me rendre compte de quelque chose.

Si j'ai le code :

Code : Tout sélectionner

function sans_espace(str) { str= str.replace(" ", ""); alert(str); }
Voici le comportement :

Code : Tout sélectionner

var str1 = "Jean-Marc"; // pas d'espace var str2 = "Jean- Marc"; // espace a droite du tiret var str3 = "Jean -Marc"; // espace a gauche du tiret var str4 = "Jean - Marc"; // espaces des deux cotés du tiret sans_espace(str1); // affiche Jean-Marc sans_espace(str2); // affiche Jean-Marc sans_espace(str3); // affiche Jean-Marc sans_espace(str4); // affiche Jean- Marc (espace à droite du tiret)
replace() "oublie" un espace!!

Peut-être est-ce déjà connu (ce dont je suis à peu près convaincu) mais j'aimerais savoir pourquoi la fonction replace() a un tel comportement et s'il y a une méthode simple (ou pas) d'y remédier.

Merci d'avance
Devether.

Re: bug avec replace ??

Posté : 27 mars 2008, 17:43
par h0_noMan
C'est le comportement normal de la fonction quand elle n'a pas de RegExp en premier paramètre.
Il faut que tu utilises un RegExp
function sans_espace(str)
{
   var regex = new RegExp(' ','g');   // Le g est pour scanner toute la chaine
   str= str.replace(reg, "");
   alert(str);
}

Posté : 28 mars 2008, 15:09
par Devether
Ok je ne connaissais pas.
Merci !