我正在尝试最后的网址。
如果url是以下之一,我想只获得“link1”(没有引号)。
http://www.site.com/category/link1
http://www.site.com/myblog/category/link1
这就是我所拥有的,但只有2个第一。
$(".ajaxed").live("click", function(event) {
var post_slug = $(this)[0].pathname.substring($(this)[0].pathname.lastIndexOf("/")).replace(/^\//, "");
alert(post_slug);
$.address.crawlable(true).value(post_slug);
$(this).load("ajax/",{slug:post_slug}, function(){
});
return false;
});
我可以获得语法方面的帮助吗?非常感谢您的时间和帮助。
答案 0 :(得分:0)
为什么你不能只拆分字符串并返回结尾?
var post_slug_array = $(this)[0].pathname.split('/');
var post_slug = post_slug_array[post_slug_array.length - 1];
答案 1 :(得分:0)
我试着跑:
t = "http://www.site.com/myblog/category/link1";
t.substring(t.lastIndexOf("/")).replace(/^\//,"");
console.log(t);
我得到了link1
。没错,不是吗?那么地球上的问题是什么?
答案 2 :(得分:0)
不确定你到底是什么,但修剪尾部斜线。你想如何处理查询字符串?您当前的代码包含它们。
//test cases
var paths = new Array(
'http://www.site.com/link1',
'http://www.site.com/myblog/category/link1',
'http://www.site.com/myblog/category/link1?querystring',
'http://www.site.com/myblog/category/link1/',
'http://www.site.com/myblog/category/link1/?querystring'
);
for (var i = 0; i < paths.length; i++) {
//trim trailing slash
var x = paths[i].replace(/\/$/, "");
//get trailing item
var post_slug = x.substring(x.lastIndexOf("/") + 1, x.length);
alert(post_slug);
}