2010-08-25 31 views

Trả lời

88

cách ưa thích của tôi để làm điều này là "tách và popping":

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

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

split()
pop()

+1

+1 Tôi thích điều này. – Marc

+11

Lập trình viên C trong tôi cringes ở số lượng các đối tượng được tạo ra và bị phá hủy trên thao tác tách/pop đơn giản này :) Có lẽ: một mảng, 2 chuỗi, một mảng khác, một chuỗi khác. – Gui13

+6

@xgbi: vâng, các nhà phát triển JavaScript và C có các triết lý khác nhau, mặc dù ;-) –

26

Giả sử chuỗi của bạn luôn luôn bắt đầu với 'test_':

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

nếu nó không bắt đầu với thử nghiệm thì sao? – NullVoxPopuli

+4

Xem câu trả lời của Andy E. – BoltClock

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

Nó thậm chí còn wor ks nếu chuỗi không có dấu gạch dưới. Hãy thử nó tại http://jsbin.com/

+4

Điều này có ít chi phí hơn, nhưng nhiều mã hơn câu trả lời của Andy E. Cả hai đều có tác dụng, nhưng tôi thích phương pháp này. – palswim

14

Cách dễ nhất tôi nghĩ là:

var s = yourString.replace(/.*_/g,"_"); 
Các vấn đề liên quan