Comment puis-je extraire "456" de "xxx_456" où xxx est de longueur indéfinie ?
Notez que l'inverse serait pas travail : "xxx_456".slice(3)
Comment puis-je extraire "456" de "xxx_456" où xxx est de longueur indéfinie ?
slice
fonctionne très bien dans IE et dans d'autres navigateurs, cela fait partie des spécifications et c'est aussi la méthode la plus efficace :
alert("xxx_456".slice(-3));
//-> 456
Méthode slice (Chaîne) - MSDN
tranche - Centre des développeurs Mozilla
var str = "xxx\_456";
var str\_sub = str.substr(str.lastIndexOf("\_")+1);
S'il n'est pas toujours composé de trois chiffres à la fin (et séparé par un trait de soulignement). Si le délimiteur de fin n'est pas toujours un trait de soulignement, vous pouvez alors utiliser une expression rationnelle :
var pat = /(\[0-9\]{1,})$/;
var m = str.match(pat);
Le site sous-chaîne vous permet de spécifier l'index de début et de fin :
var str = "xxx_456";
var subStr = str.substring(str.length - 3, str.length);
alert("xxxxxxxxxxx_456".substr(-3))
avertissement : selon mdc non compatible avec IE
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.
2 votes
Cette question serait tellement plus utile si elle était formulée de manière générale : "Comment extraire la fin d'une chaîne de caractères après la dernière occurrence d'un délimiteur donné ?