2013-06-18 10 views
8

Mam serię stron, na których muszę uzyskać konkretny kod dla przycisku. Chcę umieścić kod, który jest w url, do zmiennej z jQuery.jQuery pobiera ostatnią część adresu URL

Przykładem URL www.example.com/folder/code/12345/

Chcę uzyskać numer części w zmiennej o nazwie (siteCode)

Dzięki z góry za wszelkie odpowiedzi.

jQuery Kod/Pseudo:

var siteCode; 

// start function 
function imageCode(){ 
    siteCode // equals number part of URL 
    $('.button').attr('src', 'http:www.example.com/images/'+siteCode+'.jpg'); 
} 
+5

Możliwe dupe z http://stackoverflow.com/questions/4758103/last-segment-of-url –

Odpowiedz

8
var str="url"; 

str.split("/")[3] 

można użyć podział

+0

Dzięki wielkie, to ma to działa – huddds

10

sugeruję:

var URI = 'www.example.com/folder/code/12345/', 
    parts = URI.split('/'), 
    lastPart = parts.pop() == '' ? parts[parts.length - 1] : parts.pop(); 

JS Fiddle demo.

+0

Użycie '.pop()' sprawia, że ​​rzeczy są destrukcyjne i zmieniają tablicę 'parts []'. Jeśli Twój identyfikator URI nie ma końcowego ukośnika, to nie zwraca "12345" i zamiast tego zwraca "kod". Używanie tej wersji jest bardziej proste: 'lastPart = parts [parts.length-1]! == ''? parts [parts.length-1]: parts [parts.length-2]; ' – atwixtor

11

Można użyć poniższy kod aby otrzymać ostatnią część adresu URL .:

var value = url.substring(url.lastIndexOf('/') + 1); 
+1

Zdajesz sobie sprawę, że' lastIndexOf ('/') 'występuje jako ostatni znak adresu URL/ciągu znaków? –

1

również spróbować użyć

var url = "www.example.com/folder/code/12345"; 
    var checkExt = /\d$/i.test(url); 
    if (checkExt) { 
     alert("Yup its a numeric"); 
    } else { 
     alert("Nope"); 
    } 
3

istnieje jeden najlepszy sposób, aby wziąć ostatnią część URL jest jak podążanie, które ogólnie zostało użyte w prawdziwej implementacji.

Istnieją pewne luk w poprzednio podanej odpowiedź brzmiała:

1.Consider co jeśli istnieje url jak www.example.com/folder/code/12345 (bez „/” ukośnikiem), niż żaden z powyższego kodu będzie działać zgodnie z oczekiwaniami .

2.Consider jeśli folderu hierarchii rośnie jak www.example.com/folder/sub-folder/sub-sub-folder/code/12345

$(function() { 
    siteCode = getLastPartOfUrl('www.example.com/folder/code/12345/'); 
}); 

var getLastPartOfUrl =function($url) { 
    var url = $url; 
    var urlsplit = url.split("/"); 
    var lastpart = urlsplit[urlsplit.length-1]; 
    if(lastpart==='') 
    { 
     lastpart = urlsplit[urlsplit.length-2]; 
    } 
    return lastpart; 
} 
Powiązane problemy