我有一个带有一些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 polyfillURL之前的原始版本的代码:

您可以访问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);

Javascript相关问答推荐

如何通过在提交时工作的函数显示dom元素?

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

Vega中的模运算符

从实时数据库(Firebase)上的子类别读取数据

如何解决CORS政策的问题

构造HTML表单以使用表单数据创建对象数组

引用在HTMLAttributes<;HTMLDivElement>;中不可用

在react JS中映射数组对象的嵌套数据

加载背景图像时同步旋转不显示的问题

PDF工具包阿拉伯字体的反转数字

您能在卸载程序(QtInsteller框架)上添加WizardPage吗?

映射类型定义,其中值对应于键

查询参数中的JAVASCRIPT/REACT中的括号

AJAX POST在控制器中返回空(ASP.NET MVC)

try 将Redux工具包与MUI ToggleButtonGroup组件一起使用时出错

如何用javascript更改元素的宽度和高度?

处理TypeScrip Vue组件未初始化的react 对象

自动滚动功能在当前图像左侧显示上一张图像的一部分

固定动态、self 调整的优先级队列

JQuery使用选项填充HTMLSELECT并设置默认结果,默认结果显示为空