Frage

    

Diese Frage bereits eine Antwort hier:

    
            
  •              Trim String in JavaScript?                                      25 Antworten                          
  •     
    

Was ist eine saubere und effiziente Implementierung JavaScript führenden und nachgestellten Leerzeichen aus einer Zeichenfolge strippen?

Zum Beispiel:

" dog"

"dog "

" dog "

" dog "

alle erhalten verwandelte sich in

"dog"

War es hilfreich?

Lösung

verwenden:

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

Die Trimm-Funktion wird nun als First-Class-Funktion auf den Saiten zur Verfügung. Zum Beispiel:

" dog".trim() === "dog" //true

Bearbeiten : Nahm J-P Vorschlag das regex Muster zu einem kombinieren. Auch hat den globalen Modifikator pro Christophs Vorschlag.

Nahm Matthew Crumley Idee über Schnüffeln auf der Trimm-Funktion, bevor es neu zu erstellen. Dies wird bei der Version von JavaScript auf dem Client verwendet getan ist jünger und hat daher eine eigene, einheimische Trimmfunktion.

Andere Tipps

Für jquery Benutzer, wie etwa $.trim(s)

Gumbo bereits darauf hingewiesen, dies in einem Kommentar, aber dies trägt als Antwort zu wiederholen: die trim() Methode in JavaScript 1.8.1 hinzugefügt wurde und wird von allen modernen Browsern (Firefox 3.5+, IE 9, Chrome 10, Safari 5 unterstützt. x), obwohl IE 8 und älter unterstützt es nicht. Die Verwendung ist einfach:

 "  foo\n\t  ".trim() => "foo"

Siehe auch:

Hier ist die Funktion, die ich verwende.

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

Eine bessere polyfill aus dem MDN , dass die Entfernung von BOM und NBSP :

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

Beachten Sie, dass Prototypen integriert, in dem Modifizieren mit einem Leistungseinbuße (aufgrund der JS-Engine bailing auf einer Reihe von Laufzeitoptimierungen) und in der Leistung kritische Situationen müssen Sie möglicherweise die Alternative zu definieren myTrimFunction(string) statt betrachten. Davon abgesehen, wenn Sie eine ältere Umgebung ohne nativen .trim() Unterstützung zielen, sind Sie wahrscheinlich wichtige Performance-Probleme haben, zu behandeln.

Steven Levithan einmal schrieb darüber, wie ein Schnellere JavaScript Trim . Es ist auf jeden Fall einen Blick wert.

Wenn Sie bereits jQuery verwenden, dann können Sie einen Blick haben unter jQuery.trim() , die mit jQuery bereits vorgesehen ist.

Wenn, anstatt neuen Code zu schreiben um eine Zeichenfolge zu trimmen, sind Sie bei vorhandenen Code suchen, die „Streifen ()“ nennt und ich fragen, warum es nicht funktioniert, möchten Sie vielleicht prüfen, ob es versucht, so etwas wie schließen die PrototypeJS Rahmen, und stellen sie sicher, dass es tatsächlich immer geladen.
Dieser Rahmen fügt eine Leistenfunktion für alle String-Objekte, aber wenn z.B. Sie aktualisiert sie und Ihre Webseiten verweisen noch auf die alten js-Datei, es wird natürlich nicht funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top