使用javascript从用户输入的URL中提取GET参数

时间:2010-05-16 12:59:22

标签: javascript

我希望使用javascript从用户输入的网址中提取GET参数。

例如,用户输入的网址是:

http://www.youtube.com/watch?v=ee925OTFBCA

我可以获得v参数

'ee925OTFBCA'作为变量

先谢谢。

4 个答案:

答案 0 :(得分:1)

来自here

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
}

使用它:

 var v = getURLParam('v')

答案 1 :(得分:1)

这应该可以解决问题

// include this somewhere available 
var Query = (function(){
    var query = {}, pair, search = location.search.substring(1).split("&"), i = search.length;
    while (i--) {
        pair = search[i].split("=");
        query[pair[0]] = decodeURIComponent(pair[1]);
    }
    return query;
})();


var v= Query["v"]

这只运行一次计算并创建一个对象,其名称/值对应对应于作为参数提供的对象

答案 2 :(得分:0)

您可以使用以下功能:

function querystring(key) {
   var re=new RegExp('(?:\\?|&)'+key+'=(.*?)(?=&|$)','gi');
   var r=[], m;
   while ((m=re.exec(document.location.search)) != null) r.push(m[1]);
   return r;
}

示例:

var v = querystring('v')[0];

该函数返回一个数组,其中包含查询字符串中的所有值。如果您有?x=0&v=1&v=2&v=3之类的查询字符串,则调用querystring('v')将返回包含三个项目的数组。

答案 3 :(得分:0)

这是我的简单代码段:

function extractParamValue(url, name) {
    var pos = url.indexOf(name+'=')+name.length+1;
    var value = url.substring(pos, url.indexOf('&', pos));
    return value;
}