2010-08-25 20 views

cevap

88

Bunu yapmanın en sevdiğim yolu "bölme ve haşhaş" dir:

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

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

split()
pop()

+1

+1 Bunu beğendim. – Marc

+11

İçimdeki C programcısı, bu basit bölünmüş/pop işleminde oluşturulan ve yok edilen nesnelerin sayısına yapıştı :) Muhtemelen: bir dizi, 2 dizgi, başka bir dizi, başka bir dizi. – Gui13

+6

@xgbi: Evet, JavaScript ve C geliştiricileri oldukça farklı felsefelere sahipler ;-) –

26

'test_' başlar:

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

Testle başlamazsa ne olur? – NullVoxPopuli

+4

Andy E'nin cevabına bakın. – BoltClock

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

Hatta daha da kötüsü dizenin alt çizgisi yoksa ks. Bence http://jsbin.com/

+4

Bu, Andy E'nin cevabından daha az masraflıdır, ancak daha fazla kod vardır. Her ikisi de işe yarıyor ama bu yöntemi tercih ediyorum. – palswim

14

En kolay yolu en Deneyin geçerli:

var s = yourString.replace(/.*_/g,"_"); 
İlgili konular