2

I want to display, with javascript, just the filename of the page the user is on. For example,

https://test.example.com/wow.html

should return

wow

I was trying to use the replace() method, like so:

var url = document.URL;
document.getElementById("code").innerHTML = url.replace("http://test.example.com/", " ");

But I can't figure out how to remove the .html extension as well, or also replace https urls. Is there a better way to do this?

Thanks.

3

5 Answers 5

2

Another possible way to do it.

var url = "https://test.example.com/wow.html"

var urlSplit = url.split("/");
var name = urlSplit[urlSplit.length-1].split(".")[0];
console.log(name);

// this will fail of course with a name like my.page.html but this is just to give another alternative. :)

Sign up to request clarification or add additional context in comments.

Comments

2

There's a little hack using an <a> element that works as such:

var parser = document.createElement('a');
parser.href = "http://example.com/foo.html";
parser.pathname; // => "/foo.html"

You can parse off the / and the .html however you want, but you'll always get the correct path back from .pathname.

See here for more info about this method.

1 Comment

First, the OP doesn't want .html to be in the output. Second, I wonder why use parser instead of regular expression, any advantages??
0

This might work for you:

document.getElementById("code").innerHTML = url.substring(url.lastIndexOf("/"), url.lastIndexOf("."));

Comments

0

You probably want to use regular expressions, like this:

"https://test.example.com/wow.html".match(/https?:\/\/test\.example\.com\/(\w*).html/)
// Returned list: ["https://test.example.com/wow.html", "wow"]

When starting out a tool like Regex101 can be useful to make sense of the expression:

enter image description here

Comments

0
var text = "https://test.example.com/wow.html";
var new_text = text.slice(text.indexOf("//") + 2, text.indexOf(".html")).split('/');
console.log(new_text[1]);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.