JavaScript查询字符串

有没有任何JavaScript库使查询字符串, ASP.NET风格的字典?

可以使用的东西,如:

var query = window.location.querystring["query"]?

“查询字符串”在.NET领域之外被称为别的东西吗? 为什么不将location.search分解为关键/值集合?

编辑 :我写了我自己的功能,但是没有任何主要的JavaScript库吗?


也许http://plugins.jquery.com/query-object/?

这是它的分支https://github.com/sousk/jquery.parsequery#readme。


您可以从location.search属性中提取键/值对,该属性具有URL后面的部分。 符号,包括? 符号。

function getQueryString() {
  var result = {}, queryString = location.search.slice(1),
      re = /([^&=]+)=([^&]*)/g, m;

  while (m = re.exec(queryString)) {
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
  }

  return result;
}

// ...
var myParam = getQueryString()["myParam"];

tl; dr解决方案使用vanilla javascript在单个(ish)代码行上

var queryDict = {}
location.search.substr(1).split("&").forEach(function(item) {
    queryDict[item.split("=")[0]] = item.split("=")[1]
})

查询字符串?a=1&b=2&c=3&d&e它会返回:

> queryDict
a: "1"
b: "2"
c: "3"
d: undefined
e: undefined

多值键和编码字符?

如何在JavaScript中获取查询字符串值?

"?a=1&b=2&c=3&d&e&a=5&a=t%20e%20x%20t&e=http%3A%2F%2Fw3schools.com%2Fmy%20test.asp%3Fname%3Dståle%26car%3Dsaab"
> queryDict
a: ["1", "5", "t e x t"]
b: ["2"]
c: ["3"]
d: [undefined]
e: [undefined, "http://w3schools.com/my test.asp?name=ståle&car=saab"]
链接地址: http://www.djcxy.com/p/2903.html

上一篇: JavaScript query string

下一篇: How to remove a key from a python dictionary?