我想用javascript显示用户所在页面的文件名。例如,
https://test.example.com/wow.html
应该返回
wow
我试图使用replace()
方法,如下所示:
var url = document.URL;
document.getElementById("code").innerHTML = url.replace("http://test.example.com/", " ");
但我无法弄清楚如何删除.html扩展名,或者也可以替换https网址。有更好的方法吗?
感谢。
答案 0 :(得分:1)
使用<a>
元素可以解决这个问题:
var parser = document.createElement('a');
parser.href = "http://example.com/foo.html";
parser.pathname; // => "/foo.html"
您可以根据需要解析/
和.html
,但始终可以从.pathname
获取正确的路径。
有关此方法的详情,请参阅here。
答案 1 :(得分:0)
这可能对您有用:
document.getElementById("code").innerHTML = url.substring(url.lastIndexOf("/"), url.lastIndexOf("."));
答案 2 :(得分:0)
您可能希望使用regular expressions,如下所示:
"https://test.example.com/wow.html".match(/https?:\/\/test\.example\.com\/(\w*).html/)
// Returned list: ["https://test.example.com/wow.html", "wow"]
开始使用像Regex101这样的工具时,可以了解表达式:
答案 3 :(得分: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]);
答案 4 :(得分:0)
另一种可能的方法。
var url = "https://test.example.com/wow.html"
var urlSplit = url.split("/");
var name = urlSplit[urlSplit.length-1].split(".")[0];
console.log(name);
//这当然会失败,例如my.page.html,但这只是为了提供另一种选择。 :)