2010-08-25 8 views

Répondre

88

Ma façon préférée de le faire est le "fractionnement et éclater":

var str = "test_23"; 
alert(str.split("_").pop()); 
// -> 23 

var str2 = "adifferenttest_153"; 
alert(str2.split("_").pop()); 
// -> 153 

split()
pop()

+1

+1 J'aime ça. – Marc

+11

Le programmeur C en moi grince le nombre d'objets créés et détruits sur cette simple opération split/pop :) Probablement: un tableau, 2 chaînes, un autre tableau, une autre chaîne. – Gui13

+6

@xgbi: Oui, les développeurs de JavaScript et C ont des philosophies assez différentes, cependant ;-) –

26

En supposant que votre chaîne commence toujours avec 'test_':

var str = 'test_23'; 
alert(str.substring('test_'.length)); 
+3

et si ça ne démarre pas avec test? – NullVoxPopuli

+4

Voir la réponse d'Andy E. – BoltClock

6
string = "test_1234"; 
alert(string.substring(string.indexOf('_')+1)); 

C'est même wor ks si la chaîne n'a pas de caractère de soulignement. Essayez-le à http://jsbin.com/

+4

Cela a moins de frais généraux, mais plus de code que la réponse d'Andy E. Les deux fonctionnent, mais je préfère cette méthode. – palswim

14

Easiest façon dont je pense est:

var s = yourString.replace(/.*_/g,"_"); 
Questions connexes