首页 > 技术文章 > 提取URL的搜索字符串中的参数

makan 2015-08-19 16:38 原文

/*这个函数用来解析来自RUL的查询串中的name=value参数对
它将name=value对存储在一个对象的属性中,并返回该对象
这样来使用它*/

var args=urlArgs(); //从URL中解析参数
var q=args.q || "" ;// 如果参数定义了的话就使用参数,否则使用一个默认值
var n=args.n ? parseInt(args.n) : 10;

function urlArgs(){
var args = {}; //定义一个空对象
var query = window.location.search.substring(1); //查找到查询串,并去掉“?”
var pairs = query.split("&");
for (var i = 0; i < pairs.length; i++) {
var pos=pairs[i].indexOf("=");
if(pos == -1) continue; //如果没有查找到就跳过
var name = pairs[i].substring(0,pos);
var value = pairs[i].substring(pos+1);
value = decodeURIComponent(value); //对value进行解码
args[name] = value; //存储为属性
}
return args;
}

 

方法二:

例如:

decodeURIComponent(getQueryString(window.location.href, 'keyword'));

//获取url地址参数
function getQueryString(url, name) {
var url = url.substring(url.indexOf("?"));
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = url.substring(1).match(reg);
if (r != null) return decodeURIComponent(r[2]); return null;
}

 

推荐阅读