0

最后我正在尝试我的网址。

如果 url 是以下之一,我只想获取“link1”(不带引号)。

http://www.site.com/link1

http://www.site.com/category/link1

http://www.site.com/myblog/category/link1

这就是我所拥有的,但只有两个第一有效。

$(".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;
    });

请问我可以得到语法方面的帮助吗?非常感谢您的时间和帮助。

4

3 回答 3

0

不确定你到底在追求什么,但修剪尾部的斜线。你想如何处理查询字符串?您当前的代码包括它们。

http://jsfiddle.net/ppyJr/1/

//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);   
}
于 2011-12-03T04:38:23.507 回答
0

为什么不能只拆分字符串并返回最后?

var post_slug_array = $(this)[0].pathname.split('/');
var post_slug = post_slug_array[post_slug_array.length - 1];
于 2011-12-03T04:23:28.290 回答
0

我试过运行:

t = "http://www.site.com/myblog/category/link1";
t.substring(t.lastIndexOf("/")).replace(/^\//,"");
console.log(t);

我得到了link1。没错,不是吗?那么到底有什么问题呢?

于 2011-12-03T04:24:54.030 回答