JavaScript lastIndexOf()

时间:2013-04-28 01:39:40

标签: javascript jquery

在C#中,我可以这样做

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

返回最后一个int 2

我怎样才能在jQuery / JavaScript

中轻松完成此任务

id是动态创建的,现在最多可以创建3位数。

提前致谢。

4 个答案:

答案 0 :(得分:13)

你很亲密 - 只是区分大小写:

ID = ID.substring(ID.lastIndexOf("_") + 1);

JS Fiddle Example

答案 1 :(得分:5)

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

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

这会为您提供272

请注意,如果字符串包含下划线,您将完整地返回原始字符串。在您的具体情况下可能需要或可能不需要 - 您可以查看针对lastIndexOf()的{​​{1}}电话的结果来检测此情况。

答案 2 :(得分:0)

您是否尝试过str.substr(-1)

答案 3 :(得分: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