当前位置: 首页 > 面试题库 >

如何从GET参数获取值?

韩征
2023-03-14
问题内容

我有一个带有一些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);


 类似资料:
  • 我使用的是Spring Security3.1,我想在用户登录之前从URL获取参数。所以我希望正在访问我的登录页面的用户发送给我一个redir参数(包含他想要在他通过身份验证后转到的URL)。当我请求页面时,而不是当我尝试提交表单以登录时。 更新以获取更多信息:我的登录页面相当简单,基本上是:一个表单通过POST方法调用/j_spring_security_check(带有j_username和j

  • 问题内容: 我正在为SQLException编写通用记录器,我想获取传递给PreparedStatement的参数,该怎么做?我能够得到他们的数量。 问题答案: 简短的回答:不能。 长答案:所有JDBC驱动程序都会将参数值保留在某个地方,但是没有标准的方法来获取它们。 如果要出于调试或类似目的而打印它们,则有几种选择: 创建一个传递JDBC驱动程序(使用p6spy或log4jdbc作为基础),该驱

  • 问题内容: 如何从JavaScript请求中获取“ GET”变量? 是jQuery还是YUI!内置此功能吗? 问题答案: 所有数据均在 您必须解析字符串,例如。 只需以GET变量名作为参数调用该函数,例如。 如果变量没有值或不存在,则此函数将返回变量value或undefined

  • 你好,我来自从URL获取JSON对象 我试着去买一顶帽子- 有人能告诉我我做错了什么吗?

  • 问题内容: 对于内,怎么可以检索参数? 对于上面的简单示例,应为 但是它也应该适用于复杂的querystrngs … 问题答案: 与window.location对象。此代码为您提供了没有问号的GET。 从您的示例它将返回 编辑 :我自由地更改了Qwerty的答案,这确实很好** ,正如他指出的,我完全遵循OP的要求: 我从他的代码中删除了重复的函数执行,将其替换为变量(tmp),并且按照OP的要

  • 我正在使用AWS Lambda+API网关+无服务器(Python)。太神奇了!