如何使用JavaScript获取所有查询字符串值

ami*_*mit 1 javascript query-string

我想从URL获取查询字符串的所有参数的值。

例: www.xyz.com?author=bloggingdeveloper&a1=hello

我想使用JavaScript 获取author和的值a1

Aye*_*ndu 8

最简单的方法是:

const search = /*your search query ex:-?author=bloggingdeveloper&a1=hello*/
const params = new URLSearchParams(search);
let paramObj = {};
for(var value of params.keys()) {
     paramObj[value] = params.get(value);
 }
Run Code Online (Sandbox Code Playgroud)

如果您管理paramObj,您将获得:-

{
author: bloggingdeveloper,
a1: hello
}
Run Code Online (Sandbox Code Playgroud)

简单!!

请参阅:-https : //developer.mozilla.org/zh-CN/docs/Web/API/URLSearchParams/keys


Dan*_*ich 6

如果您正在与优秀的开发人员打交道,我认为这推理起来并不太复杂。将迭代器转换为param.keys()数组,以便您可以使用reduce。

const params = new URLSearchParams(window.location.search);

const paramsObj = Array.from(params.keys()).reduce(
  (acc, val) => ({ ...acc, [val]: params.get(val) }),
  {}
);
Run Code Online (Sandbox Code Playgroud)

这会给你一个像这样的对象:

{
  a: any,
  b: any,
  c: any,
  ...etc
}
Run Code Online (Sandbox Code Playgroud)

当然,a、b、c 和假设的查询参数名称,以及使用的“any”。


Tim*_*imT 4

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

var author = getUrlVars()["author"];
var a1 = getUrlVars()["a1"];
Run Code Online (Sandbox Code Playgroud)