JavaScript 获取url中的【参数】及【页面名称】

版权声明:大家好,我是笨笨,笨笨的笨,笨笨的笨,转载请注明出处,谢谢! 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参数的值*/

猜你喜欢

转载自blog.csdn.net/jx520/article/details/83444408
今日推荐