TRIM JAVASCRIPT

LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009 - 28 avril 2004 à 16:46
Angelsafrania Messages postés 1 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 13 mai 2009 - 13 mai 2009 à 16:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22353-trim-javascript

Angelsafrania Messages postés 1 Date d'inscription mardi 11 avril 2006 Statut Membre Dernière intervention 13 mai 2009
13 mai 2009 à 16:08
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;
}
njulio Messages postés 21 Date d'inscription mardi 13 septembre 2005 Statut Membre Dernière intervention 16 août 2011
28 févr. 2008 à 21:25
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
cs_gege217 Messages postés 40 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 13 août 2008
7 mai 2004 à 10:38
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.
cs_seed Messages postés 99 Date d'inscription samedi 1 février 2003 Statut Membre Dernière intervention 19 mars 2005
6 mai 2004 à 20:21
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>
cs_gege217 Messages postés 40 Date d'inscription jeudi 23 janvier 2003 Statut Membre Dernière intervention 13 août 2008
6 mai 2004 à 14:46
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.
michel_roger Messages postés 60 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 18 août 2006
29 avril 2004 à 12:29
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.
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
28 avril 2004 à 16:46
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.
++ !
Rejoignez-nous