2012-06-26 5 views
2

Я не знаком с JavaScript, и мне нужна помощь в извлечении идентификатора из URL с помощью JavaScript для галереи.Получение идентификатора из URL с помощью JavaScript

Это ссылка: www.shinylook.ro/produs/44/mocasini-barbati.html.

Мне нужно, чтобы число 44 в переменной.

+1

Добро пожаловать в переполнение стека! [Что вы пробовали?] (Http://whathaveyoutried.com) –

+1

Возможный дубликат [Получить идентификатор из URL-адреса с помощью jQuery] (http://stackoverflow.com/questions/3730359/get-id-from-url-with -jquery) – Esailija

+1

@Esailija: кроме этого не помечен 'jquery', а номер не находится в конце URL-адреса. Многие из ответов там полагаются на тех или иных из них. –

ответ

8

Чтобы получить URL-адрес, вы должны использовать объект location, после чего вы можете использовать split, чтобы разделить URL-адрес на косые черты.

location.pathname.split('/')[2] // Returns 44 in your example 
+0

Это то, что я имел для этого вида связи http://www.shinylook.ro/product.php?id=44 функция transferaId() { \t вар V = {}; \t var foo = window.location.href.replace (/ [& plusmn;] + ([^ = &] +) = ([^ &] *)/gi, функция (m, cheie, val) { \t \t v [cheie] = val; \t \t}); \t return v; } – user1483138

+0

В этом примере вы можете использовать это 'location.search.replace ('? Id =', '') [1]' – Calvein

+0

Спасибо, я сделал это! – user1483138

3

Вы можете сделать это с помощью String#split или с помощью regular expression.

String#split позволяет разделить строку на разделителе и получить массив в результате. Таким образом, в вашем случае вы можете разделить на и получить массив, где 44 будет в индексе 2.

Регулярные выражения позволяют сделать гораздо более сложное совпадение и извлечение, как показывают различные демонстрации на связанной странице. Например,

var str = "www.shinylook.ro/produs/44/mocasini-barbati.html"; 
var m = /produs\/(\d+)\//.exec(str); 
if (m) { 
    // m[1] has the number (as a string) 
} 

В обоих случаях число будет строкой. Вы можете разобрать его с помощью parseInt, например. n = parseInt(s, 10) (предположим, что это база 10).

+0

Не могли бы вы рассказать о том, для чего предназначен 'm [1]' guard? Я думаю, что это избыточно с квантором '+'. – pimvdb

+0

@pimvdb: Это было действительно, спасибо. Doh! Я, как правило, человек с поясом и фигурками, но это был ОТТ. :-) –

Смежные вопросы