如何在javascript中访问请求查询字符串参数?
Posted
技术标签:
【中文标题】如何在javascript中访问请求查询字符串参数?【英文标题】:How to access request query string parameters in javascript? 【发布时间】:2013-08-04 01:34:51 【问题描述】:我见过很多使用 RegEx 的解决方案,坦率地说,这似乎有点过分了,因为 javascript 用途广泛。
必须有更简单的方法来访问请求参数。
有人可以帮我演示一下吗?
【问题讨论】:
您是否尝试过自己编写一些代码? 你能说得更具体一点吗? 我相信 OP 指的是附加到当前页面的 URL 的查询字符串。澄清可能有帮助,但对我来说真的很清楚。 另见this Q/A。 【参考方案1】:我在depths of the net中找到了一个有用的方法。
function querySt(Key)
var url = window.location.href;
KeysValues = url.split(/[\?&]+/);
for (i = 0; i < KeysValues.length; i++)
KeyValue = KeysValues[i].split("=");
if (KeyValue[0] == Key)
return KeyValue[1];
抛开不赞成票和插件,无论如何谢谢。
【讨论】:
找到原始 javascript 版本的工作很不错,但是,这不是您想要的。 我其实很喜欢纯javascript版本,因为它不需要加载一些额外的库。不管怎样,很高兴你想出了一个解决方案。 次要争论点:您的.split()
使用了您在问题中抱怨的正则表达式。并不是说我会做不同的事情。 =)
这适用于我的情况,但我注意到这不能处理数组 - 如果一个参数有多个值(即 param1=val1¶m1=val2¶m1=val3)怎么办?整洁的解决方案,在任何情况下都适用于大多数情况。
window.location.search
,我想。 (原因可见,例如here, in probably the best guide on URL encoding。)【参考方案2】:
你可以使用jQuery插件Purl (A JavaScript URL parser) v2.3.1
var queryStringParameter = $.url().param('queryStringParameter');
【讨论】:
【参考方案3】:jQuery BBQ 插件来拯救。见deparam method
【讨论】:
以上是关于如何在javascript中访问请求查询字符串参数?的主要内容,如果未能解决你的问题,请参考以下文章