在 JavaScript 中解析查询字符串

2022-08-29 23:26:52

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


答案 1

以下是在 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'));

答案 2
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"