5

在 C# 中我可以做到这一点

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

返回最后一个 int2

我怎样才能最容易地在 jQuery/JavaScript 中做到这一点

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

提前致谢。

4

4 回答 4

13

你很接近 - 只是区分大小写:

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

JS 小提琴示例

于 2013-04-28T01:46:08.000 回答
5

JavaScript 也有一个lastIndexOf()方法,见这里。因此,您可以使用:

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

这给你272

请记住,如果字符串包含下划线,您将获得完整的原始字符串。在您的特定情况下可能需要也可能不需要 - 您可以检查lastIndexOf()调用的结果-1以检测到这一点。

于 2013-04-28T01:44:28.360 回答
0

你试过str.substr(-1)吗?

于 2013-04-28T01:40:25.127 回答
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
于 2013-04-28T01:45:31.480 回答