在Javascript中获取查询字符串数组值[重复]
Posted
技术标签:
【中文标题】在Javascript中获取查询字符串数组值[重复]【英文标题】:Get querystring array values in Javascript [duplicate] 【发布时间】:2013-03-29 17:55:18 【问题描述】:我有一个使用 get 方法并包含一个数组的表单:
http://www.example.com?name[]=hello&name[]=world
我正在尝试使用 javascript 或 jQuery 检索数组值 'hello' 和 'world'。
我在 Stack Overflow 上看过类似的解决方案(例如 How can I get query string values in JavaScript?),但它们似乎只处理参数而不是数组。
是否可以获取数组值?
【问题讨论】:
您发布的链接中的答案***.com/a/3855394/295783 也适用于您的情况,除非您提到数组和使用 [] 明确一点:URL 没有 arrays 的概念。您所拥有的只是具有相同名称的多个参数。[]
通常用于 php 服务器,然后将使用这些参数创建数组。其他语言(例如 Python)可以处理多个具有相同名称(并且没有 []
)的参数就好了。
从您链接到的问题中,您可能会发现此答案很有帮助:***.com/a/9362596/218196。
好的,谢谢大家。抱歉,我认为这是一个数组。 'name' 是一个复选框表单,因此可以使用相同的名称发送多个值。
【参考方案1】:
你去:http://jsfiddle.net/mm6Bt/1/
function getURLParam(key,target)
var values = [];
if (!target) target = location.href;
key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var pattern = key + '=([^&#]+)';
var o_reg = new RegExp(pattern,'ig');
while (true)
var matches = o_reg.exec(target);
if (matches && matches[1])
values.push(matches[1]);
else
break;
if (!values.length)
return null;
else
return values.length == 1 ? values[0] : values;
var str = 'http://www.example.com?name[]=hello&name[]=world&var1=stam';
console.log(getURLParam('name[]',str));
console.log(getURLParam('var1',str));
【讨论】:
经过一番挣扎,我发现如果它是一个数组,我们需要在 name 后面加上 [] !现在看起来很明显,但不知何故我浪费了一个小时来注意到它。 另外,我将第 4 行替换为:“target = decodeURIComponent(location.search);”让这个功能发挥作用。 有没有办法将整个查询字符串作为对象返回而不是传递参数? 我也需要这个来匹配空字符串,请问有人可以更新吗? 什么意思?以上是关于在Javascript中获取查询字符串数组值[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从javascript中的键和字符串值获取objectId [重复]
如何在对象数组中获取 1 到 n 键值并将它们推送到新数组?(Javascript)[重复]
如何从包含 JavaScript 中重复项的数组中获取唯一值数组? [复制]