Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2011, 18:43
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

Извлечь из ссылки число
Всем привет!
Помогите правильно извлечь число (выделено жирным) из ссылки:

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);

Последний раз редактировалось Dorian_bs, 12.12.2011 в 18:49.
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2011, 18:44
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

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)
}


принимает ссылку, возвращает число после последнего знака " - "

вторым аргументом можно передавать символ после последнего которого брать число, если не передать, то по умолчанию этот символ равен знаку минус))

Последний раз редактировалось Livanderiaamarum, 12.12.2011 в 19:22.
Ответить с цитированием
  #3 (permalink)  
Старый 12.12.2011, 19:16
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

\как понял
var x = "http://site.ru/load/38-1-0-138".split("-").pop();
alert(x);
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 12.12.2011, 19:21
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от nerv_ Посмотреть сообщение
\как понял
var x = "http://site.ru/load/38-1-0-138".split("-").pop();
alert(x);
браво но мой метод быстрее

Последний раз редактировалось Livanderiaamarum, 12.12.2011 в 19:23.
Ответить с цитированием
  #5 (permalink)  
Старый 12.12.2011, 19:48
Профессор
Отправить личное сообщение для Dorian_bs Посмотреть профиль Найти все сообщения от Dorian_bs
 
Регистрация: 24.03.2011
Сообщений: 217

Спасибо Вам большое))
Ответить с цитированием
  #6 (permalink)  
Старый 12.12.2011, 19:48
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

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('-')));

И вообще, по хорошему одна регулярка решает все проблемы и там уже вытаскивай какой хочешь индекс
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 12.12.2011, 19:51
Аватар для Livanderiaamarum
Профессор
Отправить личное сообщение для Livanderiaamarum Посмотреть профиль Найти все сообщения от Livanderiaamarum
 
Регистрация: 10.12.2011
Сообщений: 290

Сообщение от Nekromancer Посмотреть сообщение
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('-')));

И вообще, по хорошему одна регулярка решает все проблемы и там уже вытаскивай какой хочешь индекс
ахахахахахаа))) я забыл про существование lastIndexOf )))) пипец)!!
я даже щас подумал сделать какой нить такой метод))) спасибо что напомнили)
Ответить с цитированием
  #8 (permalink)  
Старый 12.12.2011, 19:59
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Nekromancer, в фф ошибка, ибо инкремент не к переменной, а к числу)

Так:
str="http://site.ru/load/38-1-0-138";
alert(str.slice(str.lastIndexOf("-")+1));
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 12.12.2011, 20:07
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

trikadin,
Ты прав, да. Я с начала запустил с обычным сложением а потом поменял на инкремент.
Что то я совсем упустил, что он не возвращает значение, а изменяет исходное Попытка излишней оптимизации.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #10 (permalink)  
Старый 12.12.2011, 21:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Вариант...
var sa = 'http://site.ru/load/38-1-0-138';
alert(sa.match(/\d+$/))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вытащить число из ссылки Artem_k89 Opera, Safari и др. 8 07.01.2011 21:46
overflow:auto и #-ссылки vania-pooh (X)HTML/CSS 3 02.01.2011 21:16
Разбить число на миссив, как ? Bogdan808 Общие вопросы Javascript 20 01.09.2010 18:19
Срабатывание ссылки на изображении, если курсор не движется. mixlink Javascript под браузер 0 16.07.2010 15:56
ссылки получали стиль "visited" только на время сессии alexandr_poskrobka Серверные языки и технологии 7 10.03.2010 08:48