版权声明:大家好,我是笨笨,笨笨的笨,笨笨的笨,转载请注明出处,谢谢! https://blog.csdn.net/jx520/article/details/83444408
从url获取参数及页面名称
window.Jerry = {
getUrlParam : function (name) {
/**
* 从url获取参数
* 1、传入参数名(字符串),返回对应参数值
* 2、传入任意 object 返回 整个参数 object
* 3、不传参数,返回参数object 的 keys
* 如果找不到返回空字符串
*/
var param = null;
try{
//多次替换版
//param = JSON.parse('{"'+window.location.search.substr(1).replace(/=/g,'":"').replace(/&/g,'","')+'"}');
//正则+箭头函数版
//param = JSON.parse('{"'+ window.location.search.substr(1).replace(/(=|&)/g, m=>({"=": '":"', "&": '","'}[m])) +'"}');
//正则+匿名函数版
param = JSON.parse('{"'+ window.location.search.substr(1).replace(/(=|&)/g, function(m){return {"=": '":"', "&": '","'}[m]}) +'"}');
}catch(e){ }
if(!param){
return '';
}
var result = '';
if(typeof name === "object"){
result = param;
}else if(typeof name === "string"){
result = param[name] && unescape(param[name]);
}else{
result = Object.keys(param);
}
return !!result ? result : '';
},
//获取当前页面名,带后缀
getFullPageName : function() {
//return location.href.split('?').shift().split('/').pop();
var q = location.href.indexOf('?');
var s = location.href.lastIndexOf('/') + 1;
return q == -1 ? location.href.substring(s) : location.href.substring(s, q);
},
//获取当前页面名,不带后缀
getPageName : function() {
//return location.href.split('?').shift().split('/').pop().split('.').shift();
var pageName =window.Jerry.getFullPageName();
return pageName.substring(0, pageName.indexOf('.'));
}
};
再来两个收集的对比下。
/*-----------------实现1--------------------*/
function getPar(par){
//获取当前URL
var local_url = document.location.href;
//获取要取得的get参数位置
var get = local_url.indexOf(par +"=");
if(get == -1){
return false;
}
//截取字符串
var get_par = local_url.slice(par.length + get + 1);
//判断截取后的字符串是否还有其他get参数
var nextPar = get_par.indexOf("&");
if(nextPar != -1){
get_par = get_par.slice(0, nextPar);
}
return get_par;
}
/*--------------------实现2(返回 $_GET 对象, 仿PHP模式)----------------------*/
var $_GET = (function(){
var url = window.document.location.href.toString();
var u = url.split("?");
if(typeof(u[1]) == "string"){
u = u[1].split("&");
var get = {};
for(var i in u){
var j = u[i].split("=");
get[j[0]] = j[1];
}
return get;
} else {
return {};
}
})();
/*第2种方式, 使用时, 可以直接 $_GET['get参数'], 就直接获得GET参数的值*/