Wie trimme ich eine Zeichenfolge in Javascript auf N Zeichen?
Lesezeit: 4 Minuten
Wie kann ich mit Javascript eine Funktion erstellen, die die als Argument übergebene Zeichenfolge auf eine bestimmte Länge kürzt, die auch als Argument übergeben wird. Zum Beispiel:
var string = "this is a string";
var length = 6;
var trimmedString = trimFunction(length, string);
// trimmedString should be:
// "this is"
Hat jemand Ideen? Ich habe etwas über die Verwendung von Teilzeichenfolgen gehört, aber nicht ganz verstanden.
“this is” = 7 Zeichen, hast du das beabsichtigt ?
– Aziz Punjani
18. September 2011 um 18:57 Uhr
Wie in der Frage gesagt, bin ich mir nicht sicher, wie ich dazu substring verwenden soll. Können Sie mir bitte ein Beispiel geben? Ich akzeptiere natürlich eine Antwort, wenn es funktioniert 😉 @Interstellar_Coder oops, Tippfehler!
– Benutzer825286
18. September 2011 um 18:58 Uhr
Werden
Warum nicht einfach Teilzeichenfolge verwenden … string.substring(0, 7); Das erste Argument (0) ist der Ausgangspunkt. Das zweite Argument (7) ist der Endpunkt (ausschließlich). Mehr Infos hier.
var string = "this is a string";
var length = 7;
var trimmedString = string.substring(0, length);
Vielen Dank! Funktioniert perfekt. Ich werde es als Antwort markieren, sobald das Zeitlimit abgelaufen ist!
– Benutzer825286
18. September 2011 um 19:01 Uhr
Und wenn Sie Auslassungspunkte für Zeichenfolgen wünschen, die die maximale Länge überschreiten (wahrscheinlich hilfreicher für längere max): var string = “Dies ist eine Zeichenfolge”; Variablenlänge = 20; var trimmedString = string.länge > länge ? string.substring(0, Länge – 3) + “…” : string.substring(0, Länge);
– Werden
13. September 2012 um 15:19 Uhr
Bitte beachten Sie, dass sich string.substr(start, length) seltsam verhält, es wird leer zurückgegeben, wenn length größer als die Länge des Strings ist. string.substring(start, end) funktioniert wie erwartet, dh es wird die Zeichenfolge bis zu ihrem Ende zurückgeben, wenn nicht genügend Zeichen für das angegebene Ende vorhanden sind!
– cent
11. Februar 2015 um 14:53 Uhr
Verwenden string.substr. Es hat kein seltsames Verhalten, trotz des vorherigen Kommentars
– Gibolt
12. August 2017 um 4:51 Uhr
.substring(from, to) nimmt Indizes. .substr(from, length) nicht, auch .substr() gewöhnt an haben eine Inkonsistenz im IE, wenn das erste Argument negativ ist.
– Bob Stein
13. Juni 2019 um 12:24 Uhr
Kopieren von Wills Kommentar in eine Antwort, weil ich es nützlich fand:
var string = "this is a string";
var length = 20;
var trimmedString = string.length > length ?
string.substring(0, length - 3) + "..." :
string;
Kein Sinn in der Verwendung string.substring(0, length) im anderen Fall, da die Zeichenfolge an dieser Stelle garantiert <= 20 Zeichen lang ist, verwenden Sie einfach string.
– Nick Sweeting
17. Mai 2016 um 21:46 Uhr
Um zwei zusätzliche Zeichen einzufügen, verwenden Sie das Auslassungszeichen …
– Olli
25. September 2020 um 0:21 Uhr
Zameer Ansari
Ich schlage vor, eine Erweiterung für die Sauberkeit des Codes zu verwenden. Beachten Sie, dass das Erweitern eines internen Objektprototyps potenziell mit Bibliotheken in Konflikt geraten könnte, die von ihnen abhängen.
var stringObject="this is a verrrryyyyyyyyyyyyyyyyyyyyyyyyyyyyylllooooooooooooonggggggggggggsssssssssssssttttttttttrrrrrrrrriiiiiiiiiiinnnnnnnnnnnnggggggggg";
stringObject.trimEllip(25)
Warum nicht? Weil Sie den Prototyp eines Standardobjekts überschreiben .trim(). Dies kann zu unerwartetem Verhalten in anderen Bibliotheken und Tools führen, die Sie möglicherweise verwenden.
let trimString = function (string, length) {
return string.length > length ?
string.substring(0, length) + '...' :
string;
};
Anwendungsfall,
let string = 'How to trim a string to N chars in Javascript';
trimString(string, 20);
//How to trim a string...
SridharKritha
Vorziehen String.prototype.slice über dem String.prototype.substring Methode (in Teilzeichenfolgein einigen Fällen gibt es ein anderes Ergebnis als erwartet).
Kürzen Sie die Saite von LINKS nach RECHTS:
const str = "123456789";
result = str.slice(0,5); // "12345", extracts first 5 characters
result = str.substring(0,5); // "12345"
startIndex > endIndex:
result = str.slice(5,0); // "", empty string
result = str.substring(5,0); // "12345" , swaps start & end indexes => str.substring(0,5)
Schneiden Sie die Saite von RECHTS nach LINKS:(-ve start index)
result = str.slice(-3); // "789", extracts last 3 characters
result = str.substring(-3); // "123456789" , -ve becomes 0 => str.substring(0)
result = str.substring(str.length - 3); // "789"
Etwas spät … Ich musste antworten. Dies ist der einfachste Weg.
Schritt für Schritt. .padEnd – Garantiert die Länge des Strings
“Die Methode padEnd() füllt die aktuelle Zeichenfolge mit einer bestimmten Zeichenfolge auf (bei Bedarf wiederholt), sodass die resultierende Zeichenfolge eine bestimmte Länge erreicht. Die Auffüllung wird vom Ende (rechts) der aktuellen Zeichenfolge angewendet. Die Quelle für diese interaktive Beispiel ist in einem GitHub-Repository gespeichert.” Quelle: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
.substring – begrenzt die benötigte Länge
Wenn Sie Ellipsen hinzufügen möchten, hängen Sie sie an die Ausgabe an.
Ich habe 4 Beispiele für gängige JavaScript-Nutzungen gegeben. Ich empfehle dringend, den String-Prototyp mit Overloading für Legacy-Unterstützung zu verwenden. Es erleichtert die spätere Implementierung und Änderung erheblich.
Hallo! Es ist gut, auch eine Erklärung dazu beizufügen, was mit Ihrem Code vor sich geht. Angesichts dessen, wie ähnlich Ihre Lösung der akzeptierten Antwort ist, vielleicht ein kleines Detail darüber, was die padEnd macht gerade.
– Mattie
24. Januar 2019 um 0:44 Uhr
Meine Lösung ist viel sauberer und standardisierter und zeigt mehrere Verwendungen. Die Methode padEnd() füllt den aktuellen String mit einem gegebenen String auf (bei Bedarf wiederholt), sodass der resultierende String eine gegebene Länge erreicht. Die Auffüllung wird vom Ende (rechts) der aktuellen Zeichenfolge angewendet. Die Quelle für dieses interaktive Beispiel ist in einem GitHub-Repository gespeichert. Quelle: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
– Matthäus Egan
24. Januar 2019 um 0:51 Uhr
Ich bestreite nicht die Qualität Ihrer Antwort. Nur ein Vorschlag, wie man es besser machen kann. Ihre Erklärung ist großartig – bearbeiten Sie Ihre Antwort und fügen Sie sie dort ein!
– Mattie
24. Januar 2019 um 0:53 Uhr
Hallo Matt, ich mag deine Antwort. Schade, dass Sie auf eine etwas andere Frage antworten. Er fragte ursprünglich nach dem Trimmen einer Saite, nicht nach der Rückgabe einer festen Saitenlänge.
– Jakob Kriz
23. Juni 2020 um 12:20 Uhr
13116100cookie-checkWie trimme ich eine Zeichenfolge in Javascript auf N Zeichen?yes
“this is” = 7 Zeichen, hast du das beabsichtigt ?
– Aziz Punjani
18. September 2011 um 18:57 Uhr
Wie in der Frage gesagt, bin ich mir nicht sicher, wie ich dazu substring verwenden soll. Können Sie mir bitte ein Beispiel geben? Ich akzeptiere natürlich eine Antwort, wenn es funktioniert 😉 @Interstellar_Coder oops, Tippfehler!
– Benutzer825286
18. September 2011 um 18:58 Uhr