2010-04-19 3 views
18

Я знаю, что могу использовать window.location.pathname для возврата URL-адреса, но как я могу разобрать URL-адрес?jquery - получить URL-адрес?

У меня есть URL-адрес: http://localhost/messages/mine/9889, и я пытаюсь проверить, существует ли «мой» в этом URL-адресе?

Так что, если «мой» является второй частью в этом URL, я хочу написать, если заявление основано на том, что ...

if(second argument == 'mine') { do something } 

ответ

44
if (location.pathname.split("/")[2] == "mine") { do something } 

Хотя очевидно, было бы лучше, чтобы проверить, является ли есть достаточное количество элементов в массиве, который возвращается расколом:

var a = location.pathname.split("/"); 
if (a.length > 2 && a[2] == "mine") { do something } 

Следует отметить, что даже если индексы массива равны нулю основе, мы хотим указать 2 в качестве индекса, чтобы получить то, что вы имеете в виду в качестве 2-го аргумента как разделенного зр лита «/ сообщения/мин/9889» в массив из 4 элементов:

["", "messages", "mine", "9889"] 
+1

Действительно, как простота этого. Чтобы удалить любые пустые элементы и иметь хороший массив путей, используйте это: 'var locationPaths = location.pathname.split ("/"). Filter (function (n) {return n! = ''});' – jnpWebDeveloper

5
if (window.location.pathname.split("/")[2] == "mine") { 
    // it exists 
}; 

window.location.pathname является строкой в ​​конце дня, так что обычно string methods применяются.

0

Вы можете использовать функцию String.split («/»), чтобы создать массив элементов, чтобы проверить, в противном случае есть несколько JQuery плагинов, анализирующие URL-адрес, например,

http://projects.allmarkedup.com/jquery_url_parser/

8

если JQuery вариант , вы могли бы сделать следующее:

$.inArray("mine", window.location.pathname.split("/")) 
+0

Обратите внимание, что это будет соответствовать _any_ 'mine', а не только во второй части URL. –

1

Даже при том, что это очень старый запрос .. он появляется в некоторых поисках. Таким образом, чтобы добавить свои заметки .. здесь

url.indexOf('mine') !== -1 

выше следует использовать для проверки, чтобы найти, если URL есть строка ... где, как найти путь, было бы лучше использовать

var a = document.createElement('a'); 
 
a.href = url; 
 
console.log(a.pathname); 
 
// if url='http://localhost/messages/mine/9889' 
 
// output will be /messages/mine/9889

надеюсь, что это будет сэкономить время одни

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