Iladarsda
Iladarsda

Reputation: 10692

How to get part of the path with jQuery?

I have following URL www.webiste.com/Services/allservices.html

How could I get part of this URL with jQuery?

e.g 'services' or 'allservices.html'

Any suggestion much appreciated.

Upvotes: 10

Views: 25528

Answers (6)

Iladarsda
Iladarsda

Reputation: 10692

Another simpler way:

urlParts = "www.website.com/About/subpage1.html".split("/")
    var Part1= urlParts[1]+"/";   // e.g. About/
    var Part2 = urlParts[2];      // e.g. subpage1.html

Upvotes: 0

Matt Powell
Matt Powell

Reputation: 109

This isn't a jQuery problem as there are a couple of javascript functions that can help you (obviously it'll still work in and around jQuery). The easiest way is to just split on the path separator and then manipulate it however you like:

a = "www.website.com/Services/allservices.html".split("/")

 => ["www.website.com", "Services", "allservices.html"]

Then you can piece it together however you like:

  • Host

    a.slice(0) => "www.website.com"

  • Path

    a.slice(1, a.size()) => ["Services", "allservices.html"] a.slice(1, a.size()).join("/") => "Services/allservices.html"

etc.

Enjoy :-)

Upvotes: 1

Sotiris
Sotiris

Reputation: 40096

var url = "www.webiste.com/Services/allservices.html"
    url = url.split("/");
    alert(url[1]);

In the above example split the string url when find / (separator) and save it in an array. Then using the proper index, you can use the substring you wish (in the above example will alert Services).

Demo: http://jsfiddle.net/jcNSs/

More info for split() : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/split

Upvotes: 14

Simeon
Simeon

Reputation: 5579

var url = 'http://www.website.com/Services/allservices.html';

// Getting the file name (allservices.html)
var fn = url.split('/').reverse()[0];

// Getting the extension (html)
var ext = url.split('/').reverse()[0].split('.').reverse()[0];

// Getting the last middle part (services)
var lm = url.split('/').reverse()[1];

Upvotes: 7

StuperUser
StuperUser

Reputation: 10850

If you are using the JavaScript window.location you can split location.pathname using '/' and use pop() to get the last element or get by index:

var splitUrlArray = urlString.split('/'); 
var lastPart = splitUrlArray.pop();
var firstPart = splitUrlArray[0]; 

Read http://davidwalsh.name/javascript-window-location for more details on the window.location.

Upvotes: 5

Andy Hunt
Andy Hunt

Reputation: 1083

Split it by "/" and then choose the last element.

var parts = $("selectorForText").val().split("/");
//parts[0] = www.website.com
//parts[1] = Services
//parts[2] = allservices.html

Something to that effect will work - the important bits being the split() function and the recognition that it returns an array of strings

--Edited to provide example--

Upvotes: 2

Related Questions