1043 Stimmen

Wie kann ich die letzten Zeichen einer Zeichenkette erhalten?

Ich habe

var id="ctl03_Tabs1";

Wie kann ich mit JavaScript die letzten fünf Zeichen oder das letzte Zeichen ermitteln?

9 Stimmen

Um das letzte Zeichen zu erhalten, wäre die beste Option id.charAt(id.length-1)

79 Stimmen

Hinweis für die Leser: Lesen Sie unbedingt über die erste Antwort hinaus, vor allem die von @Terence.

2 Stimmen

1410voto

Jamon Holmgren Punkte 22240

EDIT: Wie bereits von anderen bemerkt, sollten Sie slice(-5) anstelle von substr . Siehe jedoch die .split().pop() Lösung am Ende dieser Antwort für einen anderen Ansatz.

Ursprüngliche Antwort:

Sie werden die Javascript-String-Methode verwenden wollen .substr() in Verbindung mit dem .length Eigentum.

var id = "ctl03_Tabs1";
var lastFive = id.substr(id.length - 5); // => "Tabs1"
var lastChar = id.substr(id.length - 1); // => "1"

Damit werden die Zeichen ab id.length - 5 abgerufen und, da das zweite Argument für .substr() weggelassen wird, bis zum Ende der Zeichenkette fortgesetzt.

Sie können auch die .slice() Methode, wie andere weiter unten ausgeführt haben.

Wenn Sie nur die Zeichen nach dem Unterstrich suchen, können Sie dies verwenden:

var tabId = id.split("_").pop(); // => "Tabs1"

Dadurch wird die Zeichenkette am Unterstrich in ein Array aufgeteilt und das letzte Element aus dem Array "herausgelöst" (das ist die gewünschte Zeichenkette).

7 Stimmen

Die erste Lösung kann kürzer und schneller gemacht werden, siehe meine Antwort unten. Allerdings stimme ich in dieser besonderen Situation mit der Idee des "Split and Pop" überein.

0 Stimmen

Genial, ich habe überprüft, ob es eine "letzte" oder "richtige" Methode in js gibt, oder ob ich substr und length verwenden muss - ich hätte auch nicht an split/pop gedacht :)

0 Stimmen

Zu Ihrer Information: Wenn Sie eine bestimmte Anzahl von Zeichen benötigen, ist die erste Methode in meinen Tests mehr als 10 Mal schneller als die Pop-Methode. Ich mag die Eleganz der zweiten Methode und sie hat sicherlich ihre Berechtigung.

1040voto

Terence Punkte 9495

Verwenden Sie nicht die veraltete .substr() !

Verwenden Sie entweder die .slice() Methode, weil sie browserübergreifend kompatibel ist (siehe Problem mit IE ). Oder verwenden Sie die .substring() méthode.

Es gibt leichte Unterschiede in den Anforderungen, die ordnungsgemäß dokumentiert sind: String.prototype.substring()

const id = "ctl03_Tabs1";

console.log(id.slice(-5)); //Outputs: Tabs1
console.log(id.slice(-1)); //Outputs: 1

// below is slower
console.log(id.substring(id.length - 5)); //Outputs: Tabs1
console.log(id.substring(id.length - 1)); //Outputs: 1

12 Stimmen

Ja, Slice akzeptiert negative Werte, was großartig ist! slice() Hinweis : developer.mozilla.org/de-US/docs/Web/JavaScript/Reference/

5 Stimmen

Ich bevorzuge diese Antwort, obwohl die akzeptierte Antwort sehr gut funktioniert.

7 Stimmen

Dies sollte die Antwort sein, da die Verwendung von Slice auf diese Weise auch leistungsfähiger ist: jsperf.com/slice-vs-substr-and-length

134voto

user682701 Punkte 1401

Sie können die substr()-Methode mit einer negativen Startposition, um die letzten n Zeichen abzurufen. Zum Beispiel werden so die letzten 5 abgerufen:

var lastFiveChars = id.substr(-5);

4 Stimmen

Beste und kurze Antwort. Die ursprüngliche Stringlänge muss nicht bekannt sein (für aktuelle Browser, also ohne IE)

3 Stimmen

Dies ist bei weitem der beste und kürzeste Weg, um das Ergebnis zu erreichen

0 Stimmen

Das klingt gut, funktioniert aber nicht immer, siehe hier: w3schools.com/jsref/tryit.asp?filename=tryjsref_substring4

72voto

Zirak Punkte 37644

Die Ermittlung des letzten Zeichens ist einfach, da man Zeichenketten als Array behandeln kann:

var lastChar = id[id.length - 1];

Um einen Abschnitt einer Zeichenkette zu erhalten, können Sie die Teilbereich Funktion oder die Teilstring 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 y substring ist, wie der zweite (optionale) Parameter behandelt wird. Unter substr ist die Anzahl der Zeichen aus dem Index (der erste Parameter). In substring ist der Index der Stelle, an der die Zeichenaufteilung enden soll.

2 Stimmen

Y

34voto

tamil Punkte 341

Das folgende Skript zeigt das Ergebnis für das Abrufen der letzten 5 Zeichen und des letzten 1 Zeichens 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

Ausgang :

Tabs1 // Hat 5 Zeichen

1 // 1 Zeichen erhalten

5 Stimmen

N

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