2013-06-18 45 views
8

Tôi có một loạt các trang mà tôi cần nhận mã cụ thể cho một nút. Tôi muốn đặt mã trong url vào một biến với jQuery.jQuery lấy phần cuối cùng của URL

Một URL ví dụ là www.example.com/folder/code/12345/

Tôi muốn để có được một phần số trong một biến gọi là (siteCode)

Cảm ơn trước cho bất kỳ câu trả lời.

jquery mã/Pseudo:

var siteCode; 

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

dupe có thể có của http://stackoverflow.com/questions/4758103/last-segment-of-url –

Trả lời

8
var str="url"; 

str.split("/")[3] 

bạn có thể sử dụng chia

+0

Cảm ơn rất nhiều, điều này đã nhận nó làm việc – huddds

10

tôi muốn đề nghị:

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

JS Fiddle demo.

+0

Sử dụng '.pop()' làm lẫn lộn mọi thứ vì nó phá hoại và thay đổi mảng 'phần []'. Nếu URI của bạn không có dấu gạch chéo, điều này sẽ không trả về '12345' và thay vào đó trả về 'mã'. Sử dụng phiên bản này là thẳng thắn hơn: 'lastPart = parts [parts.length-1]! == ''? các bộ phận [parts.length-1]: các bộ phận [parts.length-2]; ' – atwixtor

11

Bạn có thể sử dụng đoạn mã sau để có được những phần cuối cùng của url .:

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

Bạn nhận ra' lastIndexOf ('/') 'xảy ra là ký tự cuối cùng của URL/chuỗi? –

1

Ngoài ra hãy thử sử dụng

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

Có một cách tốt nhất để tham gia cuối cùng của URL như sau thường được sử dụng trong thực hiện thực tế.

Có Một số sơ hở trong câu trả lời cho trước đây là:

1.Consider gì nếu có một url như www.example.com/folder/code/12345 (Nếu không có '/' dấu gạch chéo) Thân không ai trong số các mã trên sẽ làm việc theo sự mong đợi .

2.Consider nếu thư mục hệ thống cấp bậc tăng như 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; 
} 
Các vấn đề liên quan