在JavaScript中解析查询字符串

可能重复:
我怎样才能得到查询字符串值?

我需要解析查询字符串www.mysite.com/default.aspx?dest=aboutus.aspx 。 如何在JavaScript中获得dest变量?


这是一种在JavaScript中解析查询字符串的快捷方法:

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}

现在请求page.html?x = Hello

console.log(getQueryVariable('x'));

function parseQuery(queryString) {
    var query = {};
    var pairs = (queryString[0] === '?' ? queryString.substr(1) : queryString).split('&');
    for (var i = 0; i < pairs.length; i++) {
        var pair = pairs[i].split('=');
        query[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || '');
    }
    return query;
}

将查询字符串转换为对象{hello: 1, another: 2}hello=1&another=2 。 从那里,很容易提取你需要的变量。

也就是说,它不处理诸如"hello=1&hello=2&hello=3"数组情况。 为了处理这个问题,你必须在添加对象之前检查你创建的对象的属性是否存在,并将它的值转换为一个数组,并推送任何附加位。


您也可以使用Rodney Rehm出色的URI.js库。 就是这样:-

var qs = URI('www.mysite.com/default.aspx?dest=aboutus.aspx').query(true); // == { dest : 'aboutus.aspx' }
    alert(qs.dest); // == aboutus.aspx

并解析当前页面的查询字符串: -

var $_GET = URI(document.URL).query(true); // ala PHP
    alert($_GET['dest']); // == aboutus.aspx 
链接地址: http://www.djcxy.com/p/17593.html

上一篇: Parse query string in JavaScript

下一篇: How to retrieve GET parameters from javascript?