2010-08-25 25 views

risposta

88

mio modo preferito per farlo è "scissione e popping":

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

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

split()
pop()

+1

+1 Mi piace. – Marc

+11

Il programmatore C in me crolla al numero di oggetti creati e distrutti con questa semplice operazione split/pop :) Probabilmente: un array, 2 string, un altro array, un'altra stringa. – Gui13

+6

@xgbi: sì, gli sviluppatori di JavaScript e C hanno filosofie piuttosto diverse, però ;-) –

26

Supponendo che la stringa sempre inizia con 'test_':

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

cosa succede se non inizia con il test? – NullVoxPopuli

+4

Vedi la risposta di Andy E. – BoltClock

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

È anche preoccupato ks se la stringa non ha underscore. Provare a http://jsbin.com/

+4

Questo ha meno overhead, ma più codice rispetto alla risposta di Andy E. Entrambi funzionano, ma preferisco questo metodo. – palswim

14

modo più semplice che penso è:

var s = yourString.replace(/.*_/g,"_"); 
Problemi correlati