获取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;
}
方式②
方式③
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; };
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- java-用HttpURLConnection发送Http请求.
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解