// Retourne la chaîne val sans ses espaces function trim(val) { var retour = "" for(i=0;i < val.length;i++) if(val.charAt(i) != " ") { retour += val.charAt(i) } return retour }
Salut ! Ta fonction fonctionne et c'est déjà bien, mais je ne suis pas sur que la fonction trim() ce soit extactement ça ... En PHP, trim(), ça ne vire que les espaces avant et après la chaine. Mais ça reste à verifier. ++ !
Autant pour moi c plutôt un replace sans expression régulière. Je l'utilise en fait pour pouvoir afficher les séparateurs de milliers dans un montant et faire un parseFloat() ou un parseInt() par la suite sans avoir d'erreur (les parseInt et parseFloat renvoient une erreur s'ils trouvent des espaces). Une modif intéressante serait de spécifier le caractère à retirer de la chaîne. Bonne journée.
Tu peux faire encore plus simple comme cela : function trim(string) { return string.replace(/(^\s*)|(\s*$)/g,''); } ou encore plus complet : http://www.vermontsoftware.com/Javascript/trim.html Car le vrai trim en PHP enlève non seulement les espaces mais aussi les tabulations et les retour chariots (unix ou windows) ! .oOMimiLOo.
moi je transformerai ton code comme ca : <script> String.prototype.trim = function() { return this.replace(/(^\s*)|(\s*$)/g,''); } var phrase=prompt("Entre une phrase :",""); alert("."+phrase.trim()+"."); </script>
J'aime assez bien ta manière d'intégrer la fonction trim comme prototype. C'est pas grand chose, mais c'est le petit plus qui fait que c'est mieux ! .oOMimiLOo.
Mieux vaut écrire de cette façon : function trim(val) { var retour = "" for(i=0;i < val.length;i++) if (val.charAt(i) != " ") { retour += val.charAt(i) } else if ((val.charAt(i) == " ") && (val.charAt(i+1) != " ")) retour += val.charAt(i); return retour }Sinon si on on fait trim(jules nzi) ça nous donnes julesnzi, ce qui n'est pas réellement le fonctionnement de la fonction trim de php
Un code qui répond au spec du TRIM normal : function trim(string){ var rtrn = ""; var max = string.length; var j=0; //On décale le premier index pour la copie while (j<max && string[j] == " ")++j; //on décale le dernier index pour la copie while (max>0 && string[max-1] == " ")--max; //On effectue la copie while (j<max){ rtrn += string[j]; ++j; } return rtrn; }
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 873 044 membres 192 nouveaux aujourd'hui 16 151 membres club