153 votes

Découper les espaces de début et de fin de chaîne

Je suis en train de trouver un moyen de couper les espaces de début et fin de la chaîne de titre. J’ai été en utilisant cela, mais il ne semble pas fonctionner :

Toutes les idées ?

218voto

polygenelubricants Points 136838

Steven Levithan analysé de nombreux différents de mise en œuvre de l' trim en Javascript en termes de performances.

Sa recommandation est:

function trim1 (str) {
    return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

pour "usage général la mise en œuvre rapide de la croix-navigateur", et

function trim11 (str) {
    str = str.replace(/^\s+/, '');
    for (var i = str.length - 1; i >= 0; i--) {
        if (/\S/.test(str.charAt(i))) {
            str = str.substring(0, i + 1);
            break;
        }
    }
    return str;
}

"si vous voulez manipuler des chaînes de caractères exceptionnellement rapide dans tous les navigateurs".

Références

68voto

Stone Points 1212

Si vous utilisez jQuery est une option :

ou tout simplement :

48voto

CMS Points 315406

Comme @ChaosPandion mentionné, l' String.prototype.trim méthode a été introduite dans le ECMAScript 5ème Édition de la Spécification, certaines implémentations incluent déjà cette méthode, de sorte que le meilleur moyen est de détecter le natif de la mise en œuvre et de le déclarer seulement si il n'est pas disponible:

if (typeof String.prototype.trim != 'function') { // detect native implementation
  String.prototype.trim = function () {
    return this.replace(/^\s+/, '').replace(/\s+$/, '');
  };
}

Ensuite, vous pouvez tout simplement:

title = title.trim();

35voto

user590028 Points 2709

Je sais que c'est un vieux post, mais juste pensé que je vous ferais partager notre solution. Dans la quête de la plus courte (code n'est pas tout le monde aime laconique regex), on pourrait plutôt utiliser:

title = title.replace(/(^\s+|\s+$)/g, '');

BTW: j'ai couru ce même test à travers le lien partagé ci-dessus blog.stevenlevithan.com -- JavaScript plus Rapide de la Garniture et ce modèle de battre tous les autres les MAINS!

Avec IE8, a ajouté test test13. Les résultats étaient les suivants:

Longueur originale: 226002 trim1: 110ms (longueur: 225994) trim2: 79ms (longueur: 225994) trim3: 172ms (longueur: 225994) trim4: 203ms (longueur: 225994) trim5: 172ms (longueur: 225994) trim6: 312ms (longueur: 225994) trim7: 203ms (longueur: 225994) trim8: 47ms (longueur: 225994) trim9: 453ms (longueur: 225994) trim10: 15ms (longueur: 225994) trim11: 16ms (longueur: 225994) trim12: 31ms (longueur: 225994) trim13: 0ms (longueur: 226002)


11voto

CaffGeek Points 10925

Ici, cela devrait faire tout ce dont vous avez besoin

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X