如何从GET参数获取值?

我有一个带有一些GET参数的URL,如下所示:

www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5

我需要获得的全部价值c。我尝试读取该URL,但只有m2。如何使用JavaScript执行此操作?

回答:

JavaScript 本身 没有内置处理查询字符串参数的内容。

在(现代)浏览器中运行的代码可以使用URL对象(它是浏览器提供给JS的API的一部分):

var url_string = "http://www.example.com/t.html?a=1&b=3&c=m2-m3-m4-m5"; //window.location.href

var url = new URL(url_string);

var c = url.searchParams.get("c");

console.log(c);


对于较旧的浏览器(包括Internet Explorer),您可以使用此polyfill或此答案的原始版本中早于URL以下版本的代码:

您可以访问location.search,从?字符到URL的末尾或片段标识符(#foo)的开头,以先到者为准。

然后,您可以使用以下代码解析它:

function parse_query_string(query) {

var vars = query.split("&");

var query_string = {};

for (var i = 0; i < vars.length; i++) {

var pair = vars[i].split("=");

var key = decodeURIComponent(pair[0]);

var value = decodeURIComponent(pair[1]);

// If first entry with this name

if (typeof query_string[key] === "undefined") {

query_string[key] = decodeURIComponent(value);

// If second entry with this name

} else if (typeof query_string[key] === "string") {

var arr = [query_string[key], decodeURIComponent(value)];

query_string[key] = arr;

// If third or later entry with this name

} else {

query_string[key].push(decodeURIComponent(value));

}

}

return query_string;

}

var query_string = "a=1&b=3&c=m2-m3-m4-m5";

var parsed_qs = parse_query_string(query_string);

console.log(parsed_qs.c);

您可以使用以下方法从当前页面的URL获取查询字符串:

var query = window.location.search.substring(1);

var qs = parse_query_string(query);

以上是 如何从GET参数获取值? 的全部内容, 来源链接: utcz.com/qa/417942.html

回到顶部