我希望使用javascript从用户输入的网址中提取GET参数。
例如,用户输入的网址是:
http://www.youtube.com/watch?v=ee925OTFBCA
我可以获得v参数
'ee925OTFBCA'作为变量
先谢谢。
答案 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;
}