从URL段中删除查询字符串

时间:2013-08-27 11:35:02

标签: javascript

我正在创建一个检测并返回页面名称的脚本。 但是,当存在查询字符串时,它不会返回“url_segment”所需的值。

有人可以告诉我如何删除查询字符串并返回变量“url”和“url_segment”的值

// http://test.com/action
// http://test.com/action/all
// http://test.com/action/all?page=2

function return_page_name()
{
    var url = $(location).attr("href").split("/")[3]; // returns "action"
    var url_segment = $(location).attr("href").split("/")[4]; // returns "all" (if selected)

    if(url === "")
    {
        page = "homepage";
    }
    else if(url === "signup") {
        page = "sign-up";
    }

    return page;
}

2 个答案:

答案 0 :(得分:0)

您可以使用此代码:

function Q() {
    var q={};
    var a=window.location.search.substring(1);
    var b=a.split("&");
    for (var i=0;i<b.length;i++) {
        var c=b[i].split("=");
        q[c[0]]=c[1];
    }
    return q;
}

这样你就可以执行它并获得一个包含查询字符串的Object,就像你使用PHP一样。

答案 1 :(得分:0)

请参阅window.location.pathname

function getLastUrlSegment() {
    return window.location.pathname.substring(window.location.pathname.lastIndexOf('/') + 1);
}

 // http://test.com/action
window.location.pathname == '/action'
getLastUrlSegment() == 'action'

// http://test.com/action/all
window.location.pathname == '/action/all'
getLastUrlSegment() == 'all'

// http://test.com/action/all?page=2
window.location.pathname == '/action/all'
getLastUrlSegment() == 'all'