您的位置:首页 > Web前端 > JavaScript

获取URL参数的几种方式

2016-06-30 15:04 375 查看
方式①

function getUrlParam(key) {
var reg = new RegExp(key + '=([^&]*)');
var results = location.href.match(reg);
return results ? results[1] : null;
}

方式②

/**
* 获取url参数值
* @method getUrlParam
* @param {String} paramName 参数名
* @return {String} 参数值
*/
getUrlParam = function(paramName) {
var href = window.location.href;
var url = decodeURI(href);
var idx = url.indexOf("?");
var params = url.substring(idx + 1);
if (params) {
params = params.split("&");
for (var i = 0; i < params.length; i += 1) {
var param = params[i].split("=");
if (param[0] == paramName) {
//完善获取url参数的逻辑
var pArr = [];
for (var k = 1, len = param.length; k < len; k++) {
pArr.push(param[k]);
}
var p = pArr.join('=');
var idx1 = p.indexOf("#");
if (idx1 != -1) {
p = p.substring(0, idx1);
}
return p;
}
}
}
};


方式③

/**
* 通过正则表达式获取url参数
* 支持锚点#与自定义参数分割形式
*/
getUrlParamObject = function(external, split) {
var reg = /^.*\?{1}(.*)/;
var result = [];
var href = window.location.href;
var url = decodeURI(href);
var param = reg.exec(url);
if (param == null || param.length == 1 || param[1] == '')
return result;
var reg2 = /(?:([^&#]*?)=([^&#]*))[&#]?/g;
//  匹配前面参数
param[1].replace(reg2, function(a, b, c) {
analyseParam(b, c);
});
/*var reg3 = /[&#](?:([^&#]*?)=([^&#]*))$/g;
//   匹配最末尾参数
param[1].replace(reg3,function(a,b,c){
analyseParam(b,c);
});*/
function analyseParam(key, value) {
if (/=/.test(value) && external) {
var reg4 = new RegExp('(?:([^' + split + ']*?)=([^' + split + ']*))' + split + '', 'g');
var sub = [];
value.replace(reg4, function(a, b, c) {
sub.push({
key: b,
value: c,
type: 'string'
});
});
var reg5 = new RegExp('' + split + '(?:([^' + split + ']*?)=([^' + split + ']*))$', 'g');
value.replace(reg5, function(a, b, c) {
sub.push({
key: b,
value: c,
type: 'string'
});
});
result.push({
key: key,
type: 'object',
value: sub
});
} else {
result.push({
key: key,
type: 'string',
value: value
});
}
}
return result;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  url JavaScript