862 votes

Comment obtenir les derniers caractères d'une chaîne de caractères

J'ai

var id="ctl03_Tabs1";

En utilisant JavaScript, comment pourrais-je obtenir les cinq derniers caractères ou le dernier caractère ?

6 votes

Pour obtenir le dernier caractère, la meilleure option serait id.charAt(id.length-1)

70 votes

Note aux lecteurs : assurez-vous de lire au-delà de la première réponse, notamment celle de @Terence.

2 votes

1255voto

Jamon Holmgren Points 7176

EDIT : Comme d'autres l'ont fait remarquer, il faut utiliser slice(-5) au lieu de substr . Cependant, voir le .split().pop() au bas de cette réponse pour une autre approche.

Réponse originale :

Vous devez utiliser la méthode Javascript pour les chaînes de caractères. .substr() combiné avec le .length propriété.

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

Cela récupère les caractères commençant à id.length - 5 et, puisque le deuxième argument de .substr() est omis, continue jusqu'à la fin de la chaîne.

Vous pouvez également utiliser le .slice() comme d'autres l'ont souligné ci-dessous.

Si vous cherchez simplement à trouver les caractères après le trait de soulignement, vous pouvez utiliser ceci :

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

Cette opération divise la chaîne de caractères en un tableau sur le trait de soulignement, puis "extrait" le dernier élément du tableau (qui est la chaîne de caractères que vous voulez).

7 votes

La première solution peut être rendue plus courte et plus rapide, voir ma réponse ci-dessous. Cependant, je suis d'accord avec l'idée du split and pop dans cette situation particulière.

0 votes

Génial, je vérifiais s'il y avait une méthode "last" ou "right" en js, ou si je devais utiliser substr et length - je n'aurais pas pensé à split/pop non plus :)

0 votes

Pour info, si vous avez besoin d'un certain nombre de caractères, la première méthode est plus de 10 fois plus rapide que la méthode pop dans mes tests. J'aime l'élégance de la deuxième méthode et elle a certainement sa place.

882voto

Terence Points 1199

N'utilisez pas .substr() . Utilisez le .slice() car elle est compatible avec tous les navigateurs (voir IE).

const id = "ctl03_Tabs1";
console.log(id.slice(id.length - 5)); //Outputs: Tabs1
console.log(id.slice(id.length - 1)); //Outputs: 1

substr() avec une valeur négative ne fonctionne pas dans IE

10 votes

Oui, la tranche accepte les valeurs négatives, ce qui est génial ! slice() référence : developer.mozilla.org/fr/US/docs/Web/JavaScript/Référence/

5 votes

Je préfère cette réponse, bien que la réponse acceptée fonctionne très bien.

6 votes

Cela devrait être la réponse, l'utilisation de la tranche de cette façon est également plus performante : jsperf.com/slice-vs-substrat-et-longueur

67voto

Zirak Points 13656

Obtenir le dernier caractère est facile, car vous pouvez traiter les chaînes de caractères comme un tableau :

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

Pour obtenir une section d'une chaîne de caractères, vous pouvez utiliser la fonction substrat ou la fonction sous-chaîne función:

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

La différence entre substr y substring est la façon dont le deuxième paramètre (facultatif) est traité. Dans substr il s'agit du nombre de caractères de l'index (le premier paramètre). Dans substring c'est l'indice de l'endroit où le découpage des personnages doit s'arrêter.

2 votes

Vous avez une faute de frappe susbstr doit être substr

30voto

tamil Points 111

Le script suivant montre le résultat pour obtenir les 5 derniers caractères et le dernier caractère d'une chaîne en utilisant JavaScript :

var testword='ctl03_Tabs1';
var last5=testword.substr(-5); //Get 5 characters
var last1=testword.substr(-1); //Get 1 character

Sortie :

Tabs1 // A 5 caractères

1 // A obtenu 1 caractère

5 votes

Non compatible avec IE, voir ma réponse.

8voto

Nello Ollen Points 202

Il n'est pas nécessaire d'utiliser substr pour obtenir un seul caractère d'une chaîne de caractères !

En prenant l'exemple de Jamon Holmgren, nous pouvons changer la méthode substr et simplement spécifier la position du tableau :

var id = "ctl03_Tabs1";
var lastChar = id[id.length - 1]; // => "1"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X