Friday, February 17, 2012

How do I convert domain.com/foo/bar/baz/ into a string like "foo bar baz"?


Basically I want to be able to grab the ending of an url, and convert it into a string to be used somewhere.



Currently I'm doing this (which is less than optimal):




// grab the path, replace all the forward slashes with spaces
local_path = location.pathname.toString().replace(/\//g,' ');

// strip empty spaces from beginning / end of string
local_path.replace(/^\s+|\s+$/g,""));



But I think there is probably a better way. Help?



Edit: Could I confidently get rid of the .toString method there?

2 comments:

  1. You could do something like this if you want to avoid regular expressions:

    location.pathname.substring(1).split('/').join(' ')


    That will get rid of the initial slash, but won't take care of a trailing slash. If you need to deal with those, you can omit substring and use trim for modern implementations or a regex:

    location.pathname.split('/').join(' ').replace(/^\s+|\s+$/g, '')

    ReplyDelete
  2. What's wrong with what you have? Looks fine to me. That is the easiest way to handle what you want to do.

    ReplyDelete