Wie schneide ich eine Zeichenfolge in JavaScript?
javascript
string
trim
Vinod
quelle
quelle
String.trim()
funktioniert auch sofort in Node.js.String.trim()
die Klassenmethode, existiert nicht in ES5 / Node.js; Stattdessen existiertString.prototype.trim()
die Instanzmethode. Verwendung:' foo '.trim()
nichtString.trim(' foo ')
.$.trim(str)
immer verfügbar ist.Antworten:
Alle Browser seit IE9 + haben eine
trim()
Methode für Zeichenfolgen.Für diejenigen Browser, die dies nicht unterstützen
trim()
, können Sie diese Polyfüllung von MDN verwenden :Das heißt, wenn verwendet
jQuery
,$.trim(str)
ist auch verfügbar und behandelt undefiniert / null.Sieh dir das an:
quelle
$.trim(str)
immer verfügbar ist.Das Trimmen von jQuery ist praktisch, wenn Sie dieses Framework bereits verwenden.
Ich benutze jQuery oft, daher ist es für mich selbstverständlich, Strings damit zu beschneiden. Aber ist es möglich, dass es da draußen eine Gegenreaktion gegen jQuery gibt? :) :)
quelle
Obwohl es oben eine Reihe korrekter Antworten gibt, sollte beachtet werden, dass das
String
Objekt in JavaScript ab ECMAScript 5 über eine native.trim()
Methode verfügt . Daher sollte im Idealfall jeder Versuch, die Trimmmethode zu prototypisieren, wirklich prüfen, ob sie bereits vorhanden ist.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
Chrome: 5+
Oper: 10,5+
ECMAScript 5-Supporttabelle: http://kangax.github.com/es5-compat-table/
quelle
Es gibt viele Implementierungen , die verwendet werden können. Das offensichtlichste scheint so etwas zu sein:
quelle
Einfache Version hier Was ist eine allgemeine Funktion für das Trimmen von JavaScript?
quelle
Ich weiß, dass diese Frage vor drei Jahren gestellt wurde. Jetzt
String.trim()
wurde sie nativ in JavaScript hinzugefügt. Für eine Instanz können Sie direkt wie folgt zuschneiden :quelle
Wenn Sie jQuery verwenden, verwenden Sie die
jQuery.trim()
Funktion. Zum Beispiel:quelle
Flagrant Badassery hat 11 verschiedene Verzierungen mit Benchmark-Informationen:
http://blog.stevenlevithan.com/archives/faster-trim-javascript
Es ist nicht überraschend, dass Regexp-basierte Schleifen langsamer sind als herkömmliche Schleifen.
Hier ist meine persönliche. 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)
quelle
Verwenden Sie die nativen JavaScript - Methoden:
String.trimLeft()
,String.trimRight()
, undString.trim()
.String.trim()
wird in IE9 + und allen anderen gängigen Browsern unterstützt :String.trimLeft()
undString.trimRight()
sind nicht Standard, werden jedoch in allen gängigen Browsern außer IE unterstütztDie IE-Unterstützung ist mit einer Polyfüllung jedoch einfach:
quelle
trimLeft
oder gesehentrimRight
.lTrim()
undrTrim()
Methoden.Schamlos von Matt Duereg gestohlen .
quelle
Heute können Sie string.trim () verwenden , eine native Javascript-Implementierung
Siehe auch
quelle
Trimmcode aus dem eckigen js- Projekt
und nenne es als
trim(" hello ")
quelle
benutze einfach Code
Browser-Unterstützung
Für alten Browser Prototyp hinzufügen
quelle
replace
Funktion Regexp. Ich habe es nicht vollständig verstanden. Möchten Sie den Regexp-Teil etwas näher erläutern?Hier ist ein sehr einfacher Weg:
quelle
trim
sollte nur führende und nachfolgende Leerzeichen entfernen (einschließlich Tabulatoren und anderer Zeichen). Dadurch werden stattdessen alle Leerzeichen entfernt, einschließlich der Leerzeichen in der Mitte.Mit
trim()
auf String , der eine native könnte der einfachste Weg sein:quelle
Sie können Ihre Variable einfach als Zeichenfolge deklarieren und ihre Trimmfunktion verwenden:
quelle
Heute unterstützt so ziemlich jeder Browser
String.prototype.trim()
.Sie verwenden es so:
Falls Sie möglicherweise noch einen alten Browser unterstützen müssen, der diese Funktion nicht unterstützt, ist dies eine vom MDN vorgeschlagene Polyfüllung:
quelle
Ich habe eine Bibliothek, die Trim verwendet. so löste es mit dem folgenden Code.
quelle
.trim()
Methode gleich derString.prototype.trim
bereits festgelegten Methode gesetztreturn jQuery.trim(this)
, wodurch ein Stapelüberlauf entsteht.Von den vorherigen Antworten unterscheidet es sich beim Hinzufügen eines Flags
m
.Flag
m
durchsucht den Text mehrerer linearer. In diesem Modus wird die Markierung für Anfang und Ende des Musters (^
$
) vor und nach dem Zeilenumbruchzeichen (\n
) eingefügt .quelle
Sie können dies mit dem einfachen JavaScript tun:
quelle
Jetzt trim () in Javascript bauen.
Nur Konsolen- oder Druckcode, dann wird auch Ihr Name gekürzt.
quelle
Ich weiß nicht, welche Fehler sich hier verstecken können, aber ich benutze dies:
Oder dies, wenn Text enthält:
Noch ein Versuch:
quelle
Hier ist es in TypeScript:
Es wird auf den regulären Ausdruck zurückgegriffen, wenn der native Prototyp nicht verfügbar ist.
quelle
Ich hatte diese Funktion für das Trimmen geschrieben, als die .trim () -Funktion 2008 in JS nicht verfügbar war. Einige der älteren Browser unterstützen die .trim () -Funktion immer noch nicht und ich hoffe, dass diese Funktion jemandem helfen kann.
TRIM-FUNKTION
Erläuterung : Die Funktion trim () akzeptiert ein Zeichenfolgenobjekt und entfernt alle beginnenden und nachfolgenden Leerzeichen (Leerzeichen, Tabulatoren und Zeilenumbrüche) und gibt die zugeschnittene Zeichenfolge zurück. Mit dieser Funktion können Sie Formulareingaben kürzen, um sicherzustellen, dass gültige Daten gesendet werden.
Die Funktion kann als Beispiel folgendermaßen aufgerufen werden.
quelle
Mine verwendet einen einzelnen regulären Ausdruck, um nach Fällen zu suchen, in denen ein Trimmen erforderlich ist, und verwendet die Ergebnisse dieses regulären Ausdrucks, um die gewünschten Teilstring-Grenzen zu bestimmen:
Die einzige Entwurfsentscheidung, die dazu führte, war die Verwendung eines Teilstrings, um die endgültige Erfassung durchzuführen. s / \ ?: // (machen Sie die mittelfristige Erfassung) und und das Ersatzfragment wird:
Es gibt zwei Leistungswetten, die ich in diesen Impls gemacht habe:
Kopiert die Teilstring-Implementierung die Daten der ursprünglichen Zeichenfolge? Wenn dies der Fall ist, gibt es im ersten Fall, wenn ein String gekürzt werden muss, eine doppelte Durchquerung, zuerst im regulären Ausdruck (der hoffentlich teilweise sein kann) und zweitens in der Teilstring-Extraktion. Hoffentlich verweist eine Teilzeichenfolgenimplementierung nur auf die ursprüngliche Zeichenfolge, sodass Operationen wie Teilzeichenfolgen nahezu kostenlos sein können. Finger kreuzen
Wie gut ist die Erfassung im Regex-Gerät? Der mittlere Wert, der Ausgabewert, könnte möglicherweise sehr lang sein. Ich war nicht bereit zu glauben, dass die Erfassung aller Regex-Impls nicht mit ein paar hundert KB Input-Capture einhergehen würde, aber ich habe auch nicht getestet (zu viele Laufzeiten, sorry!). der zweite führt IMMER eine Erfassung durch; Wenn Ihr Motor dies ohne einen Treffer kann, vielleicht mit einigen der oben genannten String-Roping-Techniken, verwenden Sie es auf jeden Fall!
quelle
Für IE9 + und andere Browser
quelle