2013-06-18 63 views
8

我有一系列頁面,我需要獲取按鈕的特定代碼。 我想將URL中的代碼放入jQuery的變量中。jQuery獲取URL的最後部分

一個例子網址是www.example.com/folder/code/12345/

我想在一個叫(SITECODE)

預先感謝任何答案變量的數字部分。

的jQuery /僞代碼:

var siteCode; 

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

http://stackoverflow.com/questions/4758103/last-segment-of-url可能的重複數據刪除文件夾層次增加 –

回答

8
var str="url"; 

str.split("/")[3] 

您可以使用拆分

+0

非常感謝,這得到它的工作 – huddds

10

我建議:

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

JS Fiddle demo

+0

使用'.pop()'混淆了事物,因爲它具有破壞性,並且改變了'parts []'數組。如果您的URI沒有結尾斜槓,則無法返回「12345」,而是返回「代碼」。使用這個版本更直接:'lastPart = parts [parts.length-1]!==''?部分[parts.length-1]:parts [parts.length-2];' – atwixtor

11

您可以使用下面的代碼來獲取網址:

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

你意識到'lastIndexOf('/')'作爲URL /字符串的最後一個字符? –

1

而且最後部分嘗試使用

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

有一個最好的方式,採取URL的最後一部分是就像通常在實際應用中使用的那樣。

有在前面給出的答案有些漏洞是:

1.Consider如果有喜歡的www.example.com/folder/code/12345一個網址(不含「/」斜槓)什麼比沒有上面的代碼將工作按預期。

如果2.Consider像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; 
}