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 ') .

30voto

Vijin Paulraj Punkte 4282

Ich weiß, dass diese Frage bereits vor drei Jahren gestellt wurde, String.trim() wurde nativ in JavaScript hinzugefügt, so dass Sie eine Instanz direkt wie folgt trimmen können,

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

3 Stimmen

Dies funktioniert nicht in IE-Versionen, verwenden Sie die jQuery methd $.trim(str), wenn Sie können

22voto

Able Alias Punkte 3744

Wenn Sie jQuery verwenden, benutzen Sie die jQuery.trim() Funktion. Zum Beispiel:

if( jQuery.trim(StringVariable) == '')

20voto

Tero Punkte 201

Unverschämtheit in flagranti hat 11 verschiedene Ausstattungen mit Benchmark-Informationen:

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

Es überrascht nicht, dass Regexp-basierte Programme langsamer sind als herkömmliche Schleifen.


Hier ist mein persönliches Beispiel. Dieser Code ist alt! Ich habe ihn für JavaScript 1.1 und Netscape 3 geschrieben, und er wurde seitdem nur geringfügig aktualisiert. (Original verwendet 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);
}

15voto

Web_Designer Punkte 68308

Verwenden Sie die nativen JavaScript-Methoden: String.trimLeft() , String.trimRight() y String.trim() .

String.trim() wird unterstützt in IE9+ und alle anderen gängigen Browser :

'  Hello  '.trim()  //-> 'Hello'

String.trimLeft() y String.trimRight() sind nicht standardisiert, werden aber unterstützt in alle gängigen Browser außer IE

'  Hello  '.trimLeft()   //-> 'Hello  '
'  Hello  '.trimRight()  //-> '  Hello'

IE-Unterstützung ist jedoch einfach mit einem Polyfill:

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

0 Stimmen

String.trimLeft() y String.trimRight() sind nicht Teil des ECMAScript-Standards. Außerdem ist Ihre Antwort identisch mit der akzeptierten Antwort auf diese Frage.

1 Stimmen

@Brad Stimmt, aber sie haben immer noch eine breite Browserunterstützung. Und das Polyfill kümmert sich um alle Ungereimtheiten.

1 Stimmen

Sie sollten in Erwägung ziehen, Ihre Antwort zu löschen. Sie fügt nichts hinzu, was nicht schon 5x von anderen Antworten hier abgedeckt worden ist.

12voto

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

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

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

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

Schamlos gestohlen von Matt duereg .

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