ich habe
var id="ctl03_Tabs1";
Wie bekomme ich mit JavaScript die letzten fünf Zeichen oder das letzte Zeichen?
Benutzer695663
ich habe
var id="ctl03_Tabs1";
Wie bekomme ich mit JavaScript die letzten fünf Zeichen oder das letzte Zeichen?
Jamon Holmgren
EDIT: Wie andere darauf hingewiesen haben, verwenden Sie slice(-5)
anstatt substr
. Siehe jedoch die .split().pop()
Lösung am Ende dieser Antwort für einen anderen Ansatz.
Ursprüngliche Antwort:
Sie sollten die Javascript-String-Methode verwenden .substr()
kombiniert mit der .length
Eigentum.
var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"
Dadurch werden die Zeichen ab id.length – 5 abgerufen und, da das zweite Argument für .substr() weggelassen wird, bis zum Ende der Zeichenfolge fortgesetzt.
Sie können auch die verwenden .slice()
Methode, wie andere unten darauf hingewiesen haben.
Wenn Sie einfach nur die Zeichen nach dem Unterstrich suchen, können Sie Folgendes verwenden:
var tabId = id.split("_").pop(); // => "Tabs1"
Dadurch wird die Zeichenfolge auf dem Unterstrich in ein Array geteilt und dann das letzte Element aus dem Array entfernt (das ist die gewünschte Zeichenfolge).
Die erste Lösung kann kürzer und schneller gemacht werden, siehe meine Antwort unten. Ich stimme jedoch der Split-and-Pop-Idee in dieser speziellen Situation zu.
– Terenz
18. März 13 um 9:45 Uhr
Verglichen zu .slice(-5) und .substr(length – 5), .split().pop()
ist ein großer Performance-Hit. Wenn Sie dies in einer Schleife verwenden und die Leistung kritisch ist, sollten Sie dies im Hinterkopf behalten.
– nwayve
17. Februar 14 um 16:07 Uhr
In Ihrem Test .split().pop()
beträgt immer noch 5 Millionen Operationen pro Sekunde. Es ist kein Leistungsproblem, bis es ein Leistungsproblem ist. 😉
– Jamon Holmgren
17. Februar 14 um 18:27 Uhr
@HutchMoore Du hast recht. Ich habe meine Antwort bearbeitet, um das zu erwähnen slice
ist an dieser Stelle die bessere Option.
– Jamon Holmgren
29. Oktober 18 um 22:01 Uhr
Wenn Sie hier sind, weil Sie die Erweiterung eines Dateinamens abrufen wollten, dann filename.split(".").pop()
ist wesentlich klüger als das Slicing mit einem negativen Wert von 3. Viele dieser Antworten erwähnen die Verwendung negativer Werte, aber was passiert wann? Tabs12
kommt vorbei und du bekommst abs12
infolge. Der .split("_").pop()
Die hier gepostete Lösung ist wieder deutlich klüger als alle, die sagen, dass Slice verwendet werden sollte
– Zanderkrieg
3. Oktober 19 um 1:44 Uhr
Terenz
Nicht verwenden .substr()
. Verwenden Sie die .slice()
-Methode, da sie Cross-Browser-kompatibel ist (siehe IE).
const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1
substr() mit negativem Wert funktioniert nicht im IE
Ja Slice akzeptiert negative Werte, was großartig ist! slice()
Hinweis : developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
– Firmmo
30. Oktober 13 um 9:19 Uhr
Ich bevorzuge diese Antwort, obwohl die akzeptierte gut funktioniert.
– David Watts
16. November 13 um 12:39 Uhr
Dies sollte die Antwort sein, die Verwendung von Slice auf diese Weise ist auch performanter: jsperf.com/slice-vs-substr-and-length
– die Vinchi
20. Oktober 16 um 15:49 Uhr
Chrome 55 scheint zu glauben, dass substr 20 % schneller ist
– Fantapop
7. November 16 um 6:15 Uhr
Ich nehme an, Slice funktioniert nur, wenn es konsistent ist? Was wäre, wenn das Ende wäre _Tabs15
? Slice(-5) würde nur greifen abs15
? Split/Pop funktioniert viel besser für unterschiedliche Längen …
– Brian Ramsey
25. Januar 17 um 9:37 Uhr
Benutzer682701
Du kannst den … benutzen substr()-Methode mit negativer Startposition, um die letzten n Zeichen abzurufen. Zum Beispiel erhält dies die letzten 5:
var lastFiveChars = id.substr(-5);
Beste und kurze Antwort. Die ursprüngliche Zeichenfolgenlänge muss nicht bekannt sein (für aktuelle Browser, daher schließen wir IE aus)
– Thanh Trung
23. April 2020 um 7:03 Uhr
Dies ist mit Abstand der beste und kürzeste Weg zum Ergebnis
– Alpha
18. Juli 2020 um 20:40 Uhr
Das hört sich gut an, funktioniert aber nicht immer, siehe hier: w3schools.com/jsref/tryit.asp?filename=tryjsref_substring4
– Roger Perkins
16. September 21 um 16:01 Uhr
@RogerPerkins Warum postest du ein Beispiel mit substring, wenn es in diesem Beitrag um substr geht??
– Daniele Testa
17. September 21 um 6:14 Uhr
Ich bin verwirrt darüber, welche Sprache welchen Substring-Befehl verwendet, sieht so aus, als ob Javascript beide verwenden kann, obwohl es so aussieht, als ob nur substr für negative Zahlen richtig funktioniert. Es sieht so aus, als ob sogar w3schools mit der Operation von substr verwirrt ist und für eine negative Zahl angibt:
Wenn start negativ ist, verwendet substr() es als Zeichenindex vom Ende der Zeichenfolge.
Wenn start negativ oder größer als die Länge des Strings ist, wird start auf 0 gesetzt
– Roger Perkins
17. September 21 um 23:30 Uhr
Zirak
Das letzte Zeichen zu erhalten ist einfach, da Sie Zeichenfolgen als Array behandeln können:
var lastChar = id[id.length - 1];
Um einen Abschnitt einer Zeichenfolge zu erhalten, können Sie die verwenden Substr Funktion oder die Teilzeichenfolge Funktion:
id.substr(id.length - 1); //get the last character
id.substr(2); //get the characters from the 3rd character on
id.substr(2, 1); //get the 3rd character
id.substr(2, 2); //get the 3rd and 4th characters
Der Unterschied zwischen substr
und substring
So wird der zweite (optionale) Parameter behandelt. In substr
, es ist die Anzahl der Zeichen aus dem Index (der erste Parameter). In substring
es ist der Index, wo das Zeichen-Slicing enden soll.
Tamilisch
Das folgende Skript zeigt das Ergebnis für die letzten 5 Zeichen und das letzte 1 Zeichen in einer Zeichenfolge mit JavaScript:
var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character
Ausgabe :
Tabs1 // 5 Zeichen erhalten
1 // 1 Zeichen erhalten
Nicht kompatibel mit IE, siehe meine Antwort.
– Terenz
18. März 13 um 9:42 Uhr
Keivan
Eine Möglichkeit wäre die Verwendung slice
wie folgt:
var id="ctl03_Tabs1";
var temp=id.slice(-5);
also der Wert von temp
wäre "Tabs1"
.
Nicht kompatibel mit IE, siehe meine Antwort.
– Terenz
18. März 13 um 9:42 Uhr
Kaugummis
Besuche die Substring-Funktion.
So erhalten Sie das letzte Zeichen:
id.substring(id.length - 1, id.length);
.
Um das letzte Zeichen zu erhalten, wäre die beste Option id.charAt(id.length-1)
– Dilhan Jayathilake
11. September 13 um 23:36 Uhr
Hinweis für die Leser: Lesen Sie unbedingt die erste Antwort, insbesondere die von @Terence.
– Firmmo
30. Oktober 13 um 9:19 Uhr
Mögliches Duplikat, wie man das letzte Zeichen einer Zeichenfolge erhält?
– Stefan Weinhold
1. Feb. 18 um 15:14 Uhr