Question Trim chaîne en JavaScript?


Comment couper une chaîne en JavaScript?


1235
2018-01-31 15:12


origine


Réponses:


Tous les navigateurs depuis IE9 + ont trim().

Pour les navigateurs qui ne supportent pas trim(), vous pouvez utiliser ce polyfill de MDN:

if (!String.prototype.trim) {
    (function() {
        // Make sure we trim BOM and NBSP
        var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
        String.prototype.trim = function() {
            return this.replace(rtrim, '');
        };
    })();
}

Regarde ça:

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

String.prototype.ltrim=function(){return this.replace(/^\s+/,'');};

String.prototype.rtrim=function(){return this.replace(/\s+$/,'');};

String.prototype.fulltrim=function(){return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,'').replace(/\s+/g,' ');};

857
2018-01-31 15:26



La garniture de jQuery est pratique si vous utilisez déjà ce framework.

$.trim('  your string   ');

J'ai tendance à utiliser jQuery souvent, alors il est naturel pour moi de couper les cordes avec. Mais il est possible qu'il y ait une réaction contre jQuery là-bas? :)


475
2018-01-31 15:16



Bien qu'il y ait un certain nombre de bonnes réponses ci-dessus, il convient de noter que String objet en JavaScript a un natif .trim() méthode à partir de ECMAScript 5. Ainsi, idéalement, toute tentative de prototype de la méthode de compensation devrait vraiment vérifier pour voir si elle existe déjà en premier.

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

Ajouté nativement dans: JavaScript 1.8.1 / ECMAScript 5

Ainsi pris en charge dans:

Firefox: 3.5+

Safari: 5+

Internet Explorer: IE9 + (en mode Standards seulement!) http://blogs.msdn.com/b/ie/archive/2010/06/25/enhanced-scripting-in-ie9-ecmascript-5-support-and-more.aspx

Chrome: 5+

Opéra: 10.5+

Table de support ECMAScript 5: http://kangax.github.com/es5-compat-table/


160
2017-12-15 15:21



Il y a beaucoup d'implémentations cela peut être utilisé. Le plus évident semble être quelque chose comme ceci:

String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, "");
};

" foo bar ".trim();  // "foo bar"

124
2018-01-31 15:14



Version simple ici Qu'est-ce qu'une fonction générale pour la découpe JavaScript?

function trim(str) {
        return str.replace(/^\s+|\s+$/g,"");
}

45
2018-01-31 15:15



Je sais que cette question a été posée il y a trois ans. Maintenant,String.trim() a été ajouté nativement dans JavaScript.Pour une instance, vous pouvez couper directement comme suit,

document.getElementById("id").value.trim();

27
2018-01-25 11:02



Badassery flagrant a 11 versions différentes avec des informations de référence:

http://blog.stevenlevithan.com/archives/faster-trim-javascript

De manière non surprenante, les expressions basées sur les regexp sont plus lentes que les boucles traditionnelles.


Voici mon personnel. Ce code est vieux! Je l'ai écrit pour JavaScript1.1 et Netscape 3 et il n'a été que légèrement mis à jour depuis. (Original utilisé String.charAt)

/**
 *  Trim string. Actually trims all control characters.
 *  Ignores fancy Unicode spaces. Forces to string.
 */
function trim(str) {
    str = str.toString();
    var begin = 0;
    var end = str.length - 1;
    while (begin <= end && str.charCodeAt(begin) < 33) { ++begin; }
    while (end > begin && str.charCodeAt(end) < 33) { --end; }
    return str.substr(begin, end - begin + 1);
}

20
2018-03-10 13:38