2012-03-07 40 views
2

是否有可能向後子串。我的意思是我有這樣的字符串:JavaScript子串後退

Test_Test_T_630 
or 
TestTest_Test_T_6305 
or 
TestTestTest_Test_T_63050 

有沒有可能來修剪它只是相應:

Test_Test_T 
or 
TestTest_Test_T 
or 
TestTestTest_Test_T 

我知道你不能使用字符串來尋找_T爲這會修剪得太早,所以你可以倒過來尋找最後的下劃線嗎?

回答

2
yourstring.slice(0, yourstring.lastIndexOf('_T')+2) 

您也可以使用正則表達式。

+0

謝謝你完美的作品。 – MMKD 2012-03-07 11:39:29

2

基於表單

var s = "TestTestTest_Test_T_ZZZ"; 

一串......你有不同的選項,從開始的最後底線修剪。最簡單和最可能是:

s.slice(0, s.lastIndexOf("_")); 

更低效的:

s.split("_").slice(0, -1).join("_"); 

短的正則表達式爲基礎的一個:

s.replace(/_[^_]*$/, ""); 
+0

我喜歡你在最後一個例子中說明的正則表達式! – MMKD 2012-03-07 15:18:24