2013-04-28 6 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

Идентификатор создается динамический и теперь может быть до трех цифр.

Заранее спасибо.

+0

JQuery не для манипуляций со строками, но да, язык JavaScript имеет '.indexOf()', ' .lastIndexOf() ',' .substr() ',' .substring() ',' .slice() 'и другие строковые методы. См. [MDN] (http://developer.mozilla.org) для документации. – 2013-04-28 01:52:31

ответ

12

Вы были близки - просто чувствительны к регистру:

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

JS Fiddle Example

0

Вы попробовали str.substr(-1)?

+0

Иды созданы динамическими и могут теперь быть до трех цифр? Как я могу легко получить все после последнего _ –

+1

быть осторожным IE не любит отрицательные значения. Вы можете использовать 'str.substr (str.length-1)' – Brombomb

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 
Смежные вопросы