visitor (0 QPoints)
  • FR
  • EN
  • NL
  • DE
  • ES
315 experts, 1193 registered users, 1659 questions already answered
European Experts Exchange, the very best site for high-quality IT solutions

New Improved Search!

 


05/10/2011 1h30 : Steve Jobs is dead, the father of Apple ][ is gone, we are all orphaned.

Languages :: DHTML, JScript :: trim () function in javascript ? Fonction manquante ?


By: Bernard France  Date: 27/03/2006 12:58:13  French English  Points: 20 Status: Answered
Quality : Excellent
Pourquoi n'y a-t-il pas de fonction standard trim() en Javascript ? j'en ai besoin.
By: VGR Date: 27/03/2006 12:59:53 French English  Type : Answer
Salut Bernard :D

Il est vrai que Javascript n'a PAS la fonction trim(), et il n'a même pas - comme les vieux BASIC, rappelle-toi :D - un left-trim et un right-trim.

Il faut donc écrire un truc stupide et inefficace du genre :

function leftTrim(sString) { while (sString.substring(0,1) == ' ') sString = sString.substring(1, sString.length); return sString; } function rightTrim(sString) { while (sString.substring(sString.length-1, sString.length) == ' ') sString = sString.substring(0,sString.length-1); return sString; } function trim(sString) { return(leftTrim(rightTrim(sString))); }

By: Bernard Date: 08/04/2006 11:48:55 French  Type : Comment
parfait, merci.
By: GrandSchtroumpf Date: 19/06/2008 22:47:06 English  Type : Comment
Je sais que VGR n'est pas un grand amateur d'orienté objet, mais c'est quand même plus propre:

// Trim String String.prototype.trim = function() { var a = this.replace(/^\s+/, ''); return a.replace(/\s+$/, ''); };



Ca ajoute la fonction trim() à n'importe quel string.
par ex:

var stringBresilien = " salut les gars ";
var trimmed = stringBresilien.trim();

Cheers,

GS.
By: VGR Date: 20/06/2008 00:36:24 French  Type : Comment
je crois que quand j'ai répondu, j'ignorais qu'on pouvait faire le coup du prototype (ou alors ça n'existant pas...)

Je ne suis pas un fan des regexps non plus, surtout que là on est sur le client... Quitte à être inefficace, je préfère que ce soit le serveur couillu plutôt que le client léger ;-)
By: GrandSchtroumpf Date: 21/06/2008 13:30:23 English  Type : Comment
Je n'ai pas encore l'habitude de ce forum. Je n'avais pas réalisé que la question était si ancienne.

Les regexps ont l'avantage de "trimmer" tous les caractères d'espacement (\s).
Ces regexps devraient normalement être très efficaces. Elles n'utilisent pas un "pattern" très compliqué. Tout dépend bien sûr de l'optimisation du moteur de regexp... Les opérations sur les strings dépendent aussi de l'optimisation du moteur. Voir les performances déplorables de IE pour "l'addition" de strings.

Bref, il faut faire un peu de benchmarking. Il est aussi important de connaitre la situation "typique". On aura probablement des résultats différents suivant le pourcentage de strings qui doivent être effectivement "trimmés" et suivant le nombre de caractères d'espacement qui doivent être enlevés. Sans connaitre cette situation typique, je donne ma préférence à la solution la plus simple (c-a-d les regexp).

Do register to be able to answer

EContact
browser fav
page generated in 346.889970 milliseconds

Why Google AdSense ads ?

compteur
 Ranking-Hits PageRank for this page