jQuery получить последнюю часть URL

У меня есть ряд страниц, где мне нужно получить специальный код для кнопки. Я хочу поместить код, который находится в url, в переменную с 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 ответов


var str="url";

str.split("/")[3]

вы можете использовать split


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

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

Я предлагаю:

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

JS Fiddle demo.


есть один лучший способ взять последнюю часть URL-адреса, как правило, используется в реальной реализации.

есть немного лазеек в ранее данном ответе было:

1.Подумайте, что, если есть url-адрес, например www.example.com/folder/code/12345 (без косой черты"/"), чем ни один из вышеприведенного кода не будет работать в соответствии с ожиданием.

2.Рассмотрим, если иерархия папок увеличивается, как 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;
}

также попробуйте использовать выражение

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