我有一个带有一些GET参数的URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
我需要得到c
的全部价值.我试着阅读网址,但只得到了m2
个.如何使用JavaScript完成此操作?
我有一个带有一些GET参数的URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
我需要得到c
的全部价值.我试着阅读网址,但只得到了m2
个.如何使用JavaScript完成此操作?
JavaScript itself没有用于处理查询字符串参数的内置代码.
在(现代)浏览器中运行的代码您可以使用URL
object(这是浏览器提供给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),您可以使用this 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);