2013-06-18 3 views
8

У меня есть серия страниц, где мне нужно получить конкретный код для кнопки. Я хочу поместить код, который находится в URL-адресе, в переменную с jQuery.jQuery получить последнюю часть URL-адреса

Пример 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 [parts.length-1]: parts [parts.length-2]; ' – atwixtor

11

Вы можете использовать следующий код, чтобы получить последнюю часть URL .:

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 что, если есть URL-адрес, как 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; 
} 
Смежные вопросы