在javascript中显示页面名称?

时间:2015-06-04 15:02:22

标签: javascript url

如何将location.href.split('/').pop()添加到html文档以显示页面名称? (不是整个网址)我想只显示页面名称。

例如: 如果页面是“www.example.com/whaterver/mypage.html” 它会显示“mypage”。

完整的脚本是什么?我是javascript的新手,我在网上找到了这个,但我不知道整个代码。谁能帮助我?

2 个答案:

答案 0 :(得分:3)

如果你需要在代码中的其他地方重用它,我会把它粘在一个函数中。只需在页面末尾拆分页面名称并获取第一个元素:

function getPageName(url) {
  return url.split('/').pop().split('.')[0];
}

您可以传递实际网址:

var pageName = getPageName('www.example.com/whaterver/mypage.html'); // mypage

或者,使用location.href

var pageName = getPageName(location.href); // mypage

如果*.html没有匹配,我可能也倾向于返回一些东西,所以这里是一个修改过的函数,如果没有匹配则返回null:

function getPageName(url) {
  var pageName = url.split('/').pop().split('.')[0];
  return pageName.length > 0 ? pageName : null;
}

DEMO

答案 1 :(得分:0)

注意:如果您像其他解决方案一样执行.split('.'),您将错过许多网址的基本名称。

您可以找到最后一个正斜杠,并提前搜索第一个.?&#以捕获不同的网址。这相当于PHP的basename

function getBaseName(url) {
  if(!url || (url && url.length === 0)) {
    return "";
  }
  var index = url.lastIndexOf("/") + 1;
  var filenameWithExtension = url.substr(index);
  var basename = filenameWithExtension.split(/[.?&#]+/)[0];

  // Handle '/mypage/' type paths
  if(basename.length === 0) {
    url = url.substr(0,index-1);
    basename = getBaseName(url);
  }
  return basename ? basename : ""; 
}

并像这样使用

var url = "http://www.example.com/whaterver/mypage.html";
var file = getBaseName(url);

var file = getBaseName(location.pathname); // The current script page

<强>结果:

http://www.example.com/whaterver/mypage/        =>  "mypage"
http://www.example.com/whaterver/mypage.html    =>  "mypage"  
http://www.example.com/whaterver/mypage         =>  "mypage"  
http://www.example.com/whaterver/mypage/        =>  "mypage"  
http://www.example.com/whaterver/mypage#works   =>  "mypage"  
http://www.example.com/whaterver/mypage?ver=1   =>  "mypage"

JSBin Demo