我如何得到一个url的最后一段?我有下面的脚本,显示点击锚标记的完整url:
$(".tag_name_goes_here").live('click', function(event)
{
event.preventDefault();
alert($(this).attr("href"));
});
如果url为
http://mywebsite/folder/file
我如何才能让它在警告框中显示url的“文件”部分?
我如何得到一个url的最后一段?我有下面的脚本,显示点击锚标记的完整url:
$(".tag_name_goes_here").live('click', function(event)
{
event.preventDefault();
alert($(this).attr("href"));
});
如果url为
http://mywebsite/folder/file
我如何才能让它在警告框中显示url的“文件”部分?
当前回答
获取URL最后一段删除(-)和(/)的最佳方法
jQuery(document).ready(function(){
var path = window.location.pathname;
var parts = path.split('/');
var lastSegment = parts.pop() || parts.pop(); // handle potential trailing slash
lastSegment = lastSegment.replace('-',' ').replace('-',' ');
jQuery('.archive .filters').before('<div class="product_heading"><h3>Best '+lastSegment+' Deals </h3></div>');
});
其他回答
如果路径很简单,仅由简单的路径元素组成,则其他答案可能有效。但是当它也包含查询参数时,它们就会中断。
最好使用URL对象,以获得更健壮的解决方案。它是当前URL的解析解释:
输入: Const href = 'https://stackoverflow.com/boo?q=foo&s=bar'
const segments = new URL(href).pathname.split('/');
const last = segments.pop() || segments.pop(); // Handle potential trailing slash
console.log(last);
输出:“嘘”
这适用于所有常见的浏览器。只有我们垂死的IE不支持(也不会支持)。对于IE来说,有一个可用的腻子(如果你在乎的话)。
如果url为http://localhost/madukaonline/shop.php?shop=79
console.log (location.search);将带来?shop=79
最简单的方法是使用location。search
你可以在这里查找更多信息 这里
我知道它是旧的,但如果你想从一个URL得到这个,你可以简单地使用:
document.location.pathname.substring(document.location.pathname.lastIndexOf('/.') + 1);
document.location.pathname从当前URL获取路径名。 获取下面Regex最后一次出现的索引,在我们的例子中是/..点表示任意字符,因此,如果/是URL上的最后一个字符,则不算数。 Substring将截断两个索引之间的字符串。
最短的方法如何获得URL最后一段与split(), filter()和pop()
函数getLastUrlSegment(url) { 返回新的URL(URL).pathname.split('/').filter(Boolean).pop(); } console.log (getLastUrlSegment (window.location.href)); console.log (getLastUrlSegment (' https://x.com/boo ')); console.log (getLastUrlSegment (' https://x.com/boo/ ')); console.log (getLastUrlSegment (' https://x.com/boo?q=foo&s=bar=aaa ')); console.log (getLastUrlSegment (https://x.com/boo?q=foo这')); console.log(getLastUrlSegment('https://x.com/last带空格的段'));
对我有用。
我知道,已经太迟了,但对于其他人来说: 我强烈推荐使用PURL jquery插件。PURL的动机是url也可以用“#”来分割(例如:angular.js links),即url可以看起来像
http://test.com/#/about/us/
or
http://test.com/#sky=blue&grass=green
使用PURL,您可以很容易地决定(segment/fsegment)您想要获得的段。
对于“经典”的最后一部分,你可以这样写:
var url = $.url('http://test.com/dir/index.html?key=value');
var lastSegment = url.segment().pop(); // index.html