如何使用javascript获取url params

时间:2012-02-11 16:22:48

标签: javascript

假设我有以下网址:

something.com/messages/username/id

如何获得usernameid

4 个答案:

答案 0 :(得分:8)

您可以使用String.split

var parts = window.location.href.split('/'); # => ["http:", "", "something.com", "messages", "username", "id"]
var username = parts[4];
var id = parseInt(parts[5]);

答案 1 :(得分:4)

我猜您可以使用window.location.href获取网址,然后使用string.split() /上的网址。

var urlParts = window.location.href.split("/");
var username = urlParts[4];
var id = urlParts[5];

答案 2 :(得分:3)

你可以在每个'/'字符上拆分你的网址:

var url = "something.com/messages/username/id"; 
var array = url.split('/');
// array[2] contains username and array[3] contains id

答案 3 :(得分:3)

我实际上只是必须在前几天处理。当您访问某些页面的缓存版本时,查询字符串实际上是URL路径的一部分。但是,如果您尝试避免缓存,则使用查询字符串。

鉴于How to get the value from the GET parameters?中的一个答案,我正在使用它来部分规范化访问。

接收响应的路由器_.isArray()(我们建立在主干之上,因此我们有下划线可用)并处理以不同方式从对象或数组中提取数据。

最后的slice摆脱了两个""因为我们没有使用文档,只有目录和我们的网址以/开头和结尾。如果您正在寻找文档访问权限,则应相应地更改slice

var qs = function(){
    if(window.location.search){
        var query_string = {};            
        (function () {
            var e,
                a = /\+/g,  // Regex for replacing addition symbol with a space
                r = /([^&=]+)=?([^&]*)/g,
                d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
                q = window.location.search.substring(1);

            while (e = r.exec(q)){
               query_string[d(e[1])] = d(e[2]);
            }
        })();
    } else {
        return window.location.pathname.split('/').slice(1, -1);
    }
    return query_string;
};