2010-04-19 19 views
18

Bir url döndürmek için window.location.pathname kullanabileceğimi biliyorum, ancak URL'yi nasıl ayrıştırırım?jquery - URL yolu olsun?

Şunun gibi bir URL'im var: http://localhost/messages/mine/9889 ve bu URL'de "mayın" olup olmadığını kontrol etmeye çalışıyorum? "Mayın" o url ikinci parça ise

yani, ben yazmak istiyorum bir eğer buna dayanarak açıklama ...

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

cevap

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

belli ki olup olmadığını kontrol etmek daha iyi olurdu rağmen dizi indisleri dayalı sıfır olmasına rağmen, size bölünmüş sp 2 argüman olarak bakın ne olsun endeks olarak 2 belirtmek istediğiniz

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

Not: bölünmüş döndürdüklerine dizide yeterince ürün var lits 4 maddeden bir diziye "/ mesajlar/maden/9889":

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

kurtaracak. Boş öğeleri kaldırmak ve yolların güzel bir dizisine sahip olmak için şunu kullanın: 'var locationPaths = location.pathname.split ("/"). Filter (işlev (n) {return n! = ''}); – jnpWebDeveloper

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

window.location.pathname günün sonunda bir dizidir, bu nedenle olağan string methods geçerlidir.

8

ayrıştırmak birkaç jQuery eklentileri vardır kontrol etmek öğeleri bir dizi oluşturmak için ('/') işlevi string.split kullanabilirsiniz Aşağıdakileri yapabilirdiniz:

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

Bunun, URL'nin yalnızca ikinci kısmındaki değil, _any_ 'mine' ile eşleşeceğini unutmayın. –

1

Bu çok eski bir sorgu olmasına rağmen .. bazı aramalarda açılır. Yani

kullanmak için yukarıdaki url yolu bulmak için bir dize ... varsa bulmak için kontrol için kullanılmalıdır

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

, bu daha iyi olurdu burada .. notlarımı eklemek

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

umut bu gerçekten bu basitliği gibi bazı olanları zaman