bug avec replace ??

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : bug avec replace ??

par Devether » 28 mars 2008, 15:09

Ok je ne connaissais pas.
Merci !

Re: bug avec replace ??

par h0_noMan » 27 mars 2008, 17:43

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);
}

bug avec replace ??

par Devether » 27 mars 2008, 16:13

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.