Frage Trimmen Zeichenfolge in JavaScript?


Wie trimme ich eine Zeichenfolge in JavaScript?


1235
2018-01-31 15:12


Ursprung


Antworten:


Alle Browser seit IE9 + haben trim().

Für diejenigen Browser, die dies nicht unterstützen trim()Sie können diese Polyfill aus verwenden 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, '');
        };
    })();
}

Sieh dir das an:

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



Die Trimmung von jQuery ist praktisch, wenn Sie dieses Framework bereits verwenden.

$.trim('  your string   ');

Ich neige dazu, jQuery oft zu verwenden, also ist es für mich natürlich, Strings damit zu trimmen. Aber es ist möglich, dass es gegen jQuery da draußen eine Gegenreaktion gibt? :)


475
2018-01-31 15:16



Obwohl oben eine Reihe von richtigen Antworten vorhanden sind, sollte beachtet werden, dass die String Objekt in JavaScript hat eine native .trim() Methode ab ECMAScript 5. Daher sollte idealerweise jeder Versuch, die Trimmmethode zu prototypieren, wirklich prüfen, 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:

Feuerfuchs: 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 Support-Tabelle: http://kangax.github.com/es5-compat-table/


160
2017-12-15 15:21



Es gibt viele Implementierungen das kann verwendet werden. Das Offensichtlichste scheint ungefähr so ​​zu sein:

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

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

124
2018-01-31 15:14



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

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

45
2018-01-31 15:15



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

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

27
2018-01-25 11:02



Flagrant Badassery hat 11 verschiedene Trims mit Benchmark-Informationen:

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

Nicht überraschend Regexp-basierte sind langsamer als herkömmliche Schleife.


Hier ist mein persönlicher. Dieser Code ist alt! Ich habe es für JavaScript1.1 und Netscape 3 geschrieben und es 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);
}

20
2018-03-10 13:38



Wenn Sie jQuery verwenden, verwenden Sie die jQuery.trim() Funktion. Beispielsweise:

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

20
2017-08-18 13:38



Verwenden Sie die systemeigenen JavaScript-Methoden: String.trimLeft(), String.trimRight(), und String.trim().


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

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


String.trimLeft() und String.trimRight() sind nicht Standard, aber werden in unterstützt 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, '');
        };
    }
}

12
2018-02-23 05:32