我有一个带有一些 GET 参数的 URL,如下所示:
www.test.com/t.html?a=1&b=3&c=m2-m3-m4-m5
我需要获得c. 我试图阅读 URL,但我只得到m2. 如何使用 JavaScript 做到这一点?
c
m2
avaScript本身没有内置任何东西来处理查询字符串参数。
在(现代)浏览器中运行的代码可以使用该URL对象(这是浏览器向 JS 提供的 API 的一部分):
URL
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) 的开头,以先到者为准。
location.search
?
然后你可以用这个来解析它:
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);