如何通过javascript获取查询字符串?

Jay*_*esh 30 javascript query-string

如何从javascript中的URL中提取查询字符串?

谢谢!

Jos*_*ola 49

您可以轻松构建字典样式集合......

function getQueryStrings() { 
  var assoc  = {};
  var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
  var queryString = location.search.substring(1); 
  var keyValues = queryString.split('&'); 

  for(var i in keyValues) { 
    var key = keyValues[i].split('=');
    if (key.length > 1) {
      assoc[decode(key[0])] = decode(key[1]);
    }
  } 

  return assoc; 
} 
Run Code Online (Sandbox Code Playgroud)

并像这样使用它......

var qs = getQueryStrings();
var myParam = qs["myParam"]; 
Run Code Online (Sandbox Code Playgroud)

  • @Andy不,我根本不介意!我同意你的看法.它本来可以处理基本的查询字符串,但现在这是一个更完整的*答案. (3认同)

Syn*_*tic 31

如果您在地址栏中引用了URL,那么

window.location.search
Run Code Online (Sandbox Code Playgroud)

将只给你查询字符串部分.请注意,这包括开头的问号.

如果您指的是存储在(例如)字符串中的任何随机URL,您可以通过从第一个问号的索引处开始的子字符串来获取查询字符串,方法如下:

url.substring(url.indexOf("?"))
Run Code Online (Sandbox Code Playgroud)

这假设URL的片段部分中的任何问号都已正确编码.如果最后有一个目标(即一个#后跟一个DOM元素的id),那么它也会包含它.