如何修剪/剥离URL到页面名称?

Bar*_*der 7 html javascript jquery

我如何将URL修剪/剥离到页面名称...

所以: http://www.BurtReynoldsMustache.com/whatever/whoever/apage.html

会成为: apage.html

有任何想法吗?

bob*_*nce 11

location任何链接(<a>)页面上的元素,你得到的是给你的URL的特定部分特性的负载:protocol,host,port,pathname,searchhash.

你应该总是使用这些属性来提取URL的部分内容而不是黑客攻击,href并且可能在角落情况下出错.例如,到目前为止发布的每个解决方案如果存在?query#fragment存在则将失败.Rob和digitalFresh的答案试图处理它们,但如果/查询字符串或片段中存在某个字符(有效),它仍然会失败.

相反,简单地说:

var pagename= location.pathname.split('/').pop();
Run Code Online (Sandbox Code Playgroud)


ccp*_*ava 10

你不需要jquery:

var url = window.location.href;
var page = url.substring(url.lastIndexOf('/') + 1);
Run Code Online (Sandbox Code Playgroud)

编辑:可能的查询字符串的一个好点:

// it might be from browser & / anywhere else
var url = window.location.href;
url = url.split('#').pop().split('?').pop();
var page = url.substring(url.lastIndexOf('/') + 1);
Run Code Online (Sandbox Code Playgroud)

好吧,如果位置对象可用,使用pathname会得到更好的结果,如下所示,但是,url可以是字符串或直接来自文本字段或span/label的内容.所以上述解决方案应该有它的位置.

  • 当其他人在搜索网站时找到此解决方案时,答案是不对的.这对其他人来说是失败的. (3认同)
  • 这是错误的。以下来自 @bobince 和 @epascarello 的答案是正确的。使用位置.路径名。这就是它的用途。 (2认同)

epa*_*llo 5

这里的大多数解决方案都没有利用window.location对象。位置对象具有称为路径名的奇妙事物,它仅返回路径,不返回查询字符串,主机,协议,哈希等。

var mypage = window.location.pathname.split("/").pop();
Run Code Online (Sandbox Code Playgroud)