huddds
huddds

Reputation: 1045

jQuery get last part of URL

I have a series of pages where I need to get a specific code for a button. I want to put the code which is in the url into a variable with jQuery.

An example URL is www.example.com/folder/code/12345/

I want to get the number part in a variable called (siteCode)

Thanks in advance for any answers.

jquery / Pseudo code:

var siteCode;

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

Upvotes: 9

Views: 31248

Answers (5)

Husen
Husen

Reputation: 35

There is one best way to take last part of URL is like following which generally has been used in real implementation.

There are Some loopholes in previously given answer was:

1.Consider what if there is a url like www.example.com/folder/code/12345 (Without '/' forward slash) Than none of the above code will work as per expectation.

2.Consider if folder hierarchy increases like 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;
}

Upvotes: 3

Praveen
Praveen

Reputation: 56501

Also try using

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

Upvotes: 1

karthi
karthi

Reputation: 887

You can use the following code to get the last part of the url.:

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

Upvotes: 14

David Thomas
David Thomas

Reputation: 253308

I'd suggest:

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

JS Fiddle demo.

Upvotes: 11

PSR
PSR

Reputation: 40318

var str="url";

str.split("/")[3]

you can use split

Upvotes: 10

Related Questions