1368 Stimmen

Zeichenkette in JavaScript trimmen?

Wie kann ich eine Zeichenkette in JavaScript kürzen? Das heißt, wie entferne ich alle Leerzeichen am Anfang und am Ende der Zeichenfolge in JavaScript?

296 Stimmen

Es ist erwähnenswert, dass zwei Jahre nachdem diese Frage gestellt wurde, String.trim() nativ in JavaScript 1.8.1 / ECMAScript 5 hinzugefügt wurde, unterstützt in: Firefox 3.5+, Chrome/Safari 5+, IE9+ (nur im Standardmodus!) siehe die Antwort von scunliffe: stackoverflow.com/a/8522376/8432

47 Stimmen

String.trim() funktioniert auch in Node.js ohne Probleme.

47 Stimmen

Um pingelig zu sein: String.trim() , die Klassenmethode, gibt es in ES5/Node.js nicht; stattdessen, String.prototype.trim() , die Instanzmethode, existiert. Verwendung: ' foo '.trim() pas String.trim(' foo ') .

941voto

Pradeep Kumar Mishra Punkte 10679

Alle Browser seit IE9+ haben trim() Methode für Zeichenketten:

" \n test \n ".trim(); // returns "test" here

Für jene Browser, die nicht unterstützen trim() können Sie dieses Polyfill von 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, '');
        };
    })();
}

Das heißt, wenn Sie jQuery , $.trim(str) ist ebenfalls verfügbar und behandelt undefiniert/null.


Siehe dies:

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,' ');};

87 Stimmen

Es ist erwähnenswert, dass in jQuery, $.trim(str) ist immer verfügbar.

483voto

barneytron Punkte 7885

Die Verkleidung aus jQuery ist praktisch, wenn Sie diesen Rahmen bereits verwenden.

$.trim('  your string   ');

Ich neige dazu, jQuery oft zu verwenden, so dass das Trimmen von Zeichenfolgen mit ihm ist natürlich für mich. Aber es ist möglich, dass es eine Gegenreaktion gegen jQuery da draußen?)

1 Stimmen

Damit werden nur Leerzeichen (Zeilenumbrüche) abgeschnitten. Es funktioniert nicht wie php trim, wo man auch Zeichen abschneiden kann.

1 Stimmen

In jQuery 3.5.0 wurde die Trimm-Methode abgeschrieben.

166voto

scunliffe Punkte 60080

Obwohl es oben eine Reihe von richtigen Antworten gibt, sollte man beachten, dass die String Objekt in JavaScript hat eine eigene .trim() Methode ab ECMAScript 5 . Daher sollte bei jedem Versuch, einen Prototyp für die Trimm-Methode zu erstellen, zuerst geprüft werden, ob sie bereits existiert.

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

Nativ hinzugefügt in: JavaScript 1.8.1 / ECMAScript 5

So unterstützt in:

Firefox: 3.5+

Safari: 5+

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

Chrom: 5+

Oper: 10.5+

ECMAScript 5-Unterstützungstabelle: http://kangax.github.com/es5-compat-table/

129voto

Gumbo Punkte 617646

Es gibt eine Vielzahl von Umsetzungen die verwendet werden können. Die naheliegendste scheint so etwas zu sein wie diese:

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

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

47voto

Mark Davidson Punkte 5519

Einfache Version hier Was ist eine allgemeine Funktion für JavaScript-Trim?

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X