2013-04-28 50 views
5

在C#中,我可以做到这一点的JavaScript lastIndexOf()

string ID = "ContentPlaceHolderDefault_MainSiteSectionArea_MyPagePlaceHolder_Item4_FavoritAmusementCalender_6_deleteRight_2";    
ID = ID.Substring(ID.LastIndexOf("_") + 1);  

返回最后INT 2

我如何可以很容易地做到这一点的jQuery/JavaScript的

的id,创建动态现在可以达到3位数。

在此先感谢。

+0

jQuery是不是字符串处理,惟命是从,JavaScript语言有'.indexOf()',' .lastIndexOf()','.substr()','.substring()','.slice()'和其他字符串方法。有关文档,请参见[MDN](http://developer.mozilla.org)。 – 2013-04-28 01:52:31

回答

0

你试过str.substr(-1)

+0

这个ID是动态创建的,现在可以达到3位数?我怎样才能轻松获得最后的_ – 2013-04-28 01:45:57

+1

要小心IE不喜欢负值。你可以使用'str.substr(str.length-1)' – Brombomb 2013-04-28 01:46:45

5

的JavaScript也有一个lastIndexOf()方法,请参阅here。因此您可以使用:

var str1 = "Blah, blah, blah Calender_6_deleteRight_272"; 
var str2 = str1.substr (str1.lastIndexOf ("_") + 1); 

这给你272

请记住,如果字符串不包含包含下划线,那么您将获得原始字符串的全部内容。在您的具体情况中可能会或可能不需要您 - 您可以检查lastIndexOf()呼叫的结果与-1以检测此结果。

0

你应该这样做:

function get_last_part(str){ 
    var split = str.split('_'); 
    return split[split.length-1]; 
} 
console.log(get_last_part("ContentPlaceHolderDefault_MainSiteSectionArea_MyPagePlaceHolder_Item4_FavoritAmusementCalender_6_deleteRight_2")); // this will write "2" in console 

这样你会得到总是导致你不必关切出的指数问题。这将返回总是你的字符串的最后一部分,如果它没有_你会得到它的第一部分。

console.log(get_last_part("Content")); // will write "Content" into console 
相关问题