javascript - 使用Jquery或JS获取多个同名参数时的URL查询字符串参数

标签 javascript jquery query-string

我有一个由多个已命名且具有相应搜索条件的过滤器组成的 URL,我无法更改这些 URL 的构造方式。

我知道如何在我只是尝试获取一个参数的值的情况下获取查询字符串参数,但我似乎无法弄清楚如何将它们适本地关联在一起。例如,这是网址:

/AllItems.aspx?FilterName=FilterA&FilterMultiValue=*FilterASearchValue*&FilterName=FilterB&FilterMultiValue=*FilterBSearchValue*"

我想从此网址获取值,以便可以将过滤器 A 与 FilterA 搜索值关联,并将过滤器 B 与 FilterB 搜索值关联

最佳答案

你可以使用reduce来做到这一点:

var u='/AllItems.aspx?FilterName=FilterA&FilterMultiValue=*FilterASearchValue*&FilterName=FilterB&FilterMultiValue=*FilterBSearchValue*'

u.split(/[?&]/).reduce(function(a,b,c){
  var p=b.split("="), k=p[0], v=decodeURIComponent(p[1]);
  if(!p[1])return a;
  a[k]=a[k]||[];
  a[k].push(v);
 return a;
}, {})

它返回参数数组而不是字符串,允许同名参数重复:

{   
    "FilterName": [
        "FilterA",
        "FilterB"
    ],
    "FilterMultiValue": [
        "*FilterASearchValue*",
        "*FilterBSearchValue*"
    ]
}

关于javascript - 使用Jquery或JS获取多个同名参数时的URL查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942257/

相关文章:

javascript - 在 JavaScript 中,如果我将句子拆分成数组然后连接它,如何保留句子中的空格?

javascript - 如何使用网络浏览器呈现 NoSQL 数据中的换行符?

javascript - 在表中显示 14.5k+ 条记录挂起网页

javascript - 从查询字符串中检索数字的最有效方法?

html - Twitter 与查询字符串共享链接

javascript 获取查询字符串

javascript - 事件元素的样式父级

javascript - 使用 JavaScript 在 Android 手机上发送/阅读短信?

javascript - jQuery scrollTo 函数的问题

jquery - 每秒添加 li with active class, different background