Javascript 我该如何提取;搜索词";来自URL?

Javascript 我该如何提取;搜索词";来自URL?,javascript,Javascript,如何从以下URL中提取“test” 我已经找到了一个脚本来提取路径(window.location.pathname),但我找不到或弄不清楚如何提取或拆分URL -本 这是你的电话号码 或者您可以使用jQuery的插件: 如果只需要第一项的值,则: function getFirstSeachValue() { var s = window.location.search.split('&'); return s[0].split('=')[1]; } 如果需要“q”项的值,

如何从以下URL中提取“test”

我已经找到了一个脚本来提取路径(window.location.pathname),但我找不到或弄不清楚如何提取或拆分URL

-本

这是你的电话号码

或者您可以使用jQuery的插件:


如果只需要第一项的值,则:

function getFirstSeachValue() {
  var s = window.location.search.split('&');
  return s[0].split('=')[1];
}
如果需要“q”项的值,无论它在搜索字符串中的位置如何,则以下命令将返回传递的项的值,如果该项不在搜索字符串中,则返回null:

function getSearchValue(value) {
  var a = window.location.search.replace(/^\?/,'').split('&');
  var re = new RegExp('^' + value + '=');
  var i = a.length;
  while (i--) {
    if (re.test(a[i])) return a[i].split('=')[1];
  }
  return null;
}
当然,这两种方法都只是示例,应该一路测试结果,以防止出现意外错误

-- 
Rob

我相信这个问题有解决办法。要获得此函数的改进版本,请参阅如果有以q结尾的参数,则此函数不起作用,例如
?iq=120&q=steve
将返回iq值而不是q值。@spb,说得好!我想
/(?:\?|&)q=([^&]*)/
会更健壮。
function getSearchValue(value) {
  var a = window.location.search.replace(/^\?/,'').split('&');
  var re = new RegExp('^' + value + '=');
  var i = a.length;
  while (i--) {
    if (re.test(a[i])) return a[i].split('=')[1];
  }
  return null;
}
-- 
Rob