Извлечь из ссылки число
Всем привет!
Помогите правильно извлечь число (выделено жирным) из ссылки: http://site.ru/load/38-1-0-138 Дело в том, что можно было бы использовать рег. выражения. но в данном случае числа перед 138 могут быть любой длинны. Как я понял, нужно как то записать в поиске, что происходит считывание числа после определенного "-". Получается, но только наоборот. То есть вырезается 138, а остальное остается. Нужно сделать, что бы вырезалось все, кроме 138 var sa = 'http://site.ru/load/38-1-0-138'; sa.slice(0, -3); |
function lastNumber(_url, _word){ _word?_word=_word:_word = '-' var start for(var i=_url.length-1; i >= 0; i--){ if(_url[i] == _word){ start = i break } } return parseInt(_url.slice(start+1),10) } принимает ссылку, возвращает число после последнего знака " - " вторым аргументом можно передавать символ после последнего которого брать число, если не передать, то по умолчанию этот символ равен знаку минус)) |
\как понял
var x = "http://site.ru/load/38-1-0-138".split("-").pop(); alert(x); |
Цитата:
|
Спасибо Вам большое))
|
Livanderiaamarum,
Ой, ну да ладно. А зачем то так было мудрить :) _word?_word=_word:_word = '-' Вот вам 2 варианта, куда попроще: var word = arguments[1] || '-'; word = word || '-' А вместо последней вашей кучи кода, нельзя было сделать так что ле: var str = 'http://site.ru/load/38-1-0-138'; alert(str.slice(++str.lastIndexOf('-'))); И вообще, по хорошему одна регулярка решает все проблемы и там уже вытаскивай какой хочешь индекс :) |
Цитата:
я даже щас подумал сделать какой нить такой метод))) спасибо что напомнили) |
Nekromancer, в фф ошибка, ибо инкремент не к переменной, а к числу)
Так: str="http://site.ru/load/38-1-0-138"; alert(str.slice(str.lastIndexOf("-")+1)); |
trikadin,
Ты прав, да. Я с начала запустил с обычным сложением а потом поменял на инкремент. Что то я совсем упустил, что он не возвращает значение, а изменяет исходное :) Попытка излишней оптимизации. |
Вариант...
var sa = 'http://site.ru/load/38-1-0-138'; alert(sa.match(/\d+$/)) |
Часовой пояс GMT +3, время: 08:37. |