Could someone recommend a way to get page name from a url using JavaScript?
For instance if I have:
http://www.cnn.com/news/1234/news.html?a=1&b
I think it's
window.location.pathname.replace(/^.*\/([^/]*)/, "$1");
So,
var pageTitle = window.location.pathname.replace(/^.*\/([^/]*)/, "$1");
You might want to also find file paths on a local disk, and you might not want to include any hash or get strings in the path-
String.prototype.fileName= function(){
var f, s= this.split(/[#\?]/, 1)[0].replace(/\\/g,'/');
s= s.substring(s.lastIndexOf('/')+ 1);
f= /^(([^\.]+)(\.\w+)?)/.exec(s) || [];
return f[1] || '';
}
You can do this pretty easily via window.location.pathname
parsing:
var file, n;
file = window.location.pathname;
n = file.lastIndexOf('/');
if (n >= 0) {
file = file.substring(n + 1);
}
alert(file);
...or as others have said, you can do it with a regexp in one line. One kinda dense-looking line, but with a comment above it, should be a good way to go.
var url = "http://www.cnn.com/news/1234/news.html?a=1&b=2&c=3";
url = url.replace(/^.*\//, "").replace(/\?.*$/, "");
You can substitute url
with window.location