js获取url中的参数 优化#号问题

先看一下我在网上找的JS

function getUrlParam(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
  var r = window.location.search.substr(1).match(reg); //匹配目标参数
  if (r != null) return decodeURIComponent(r[2]); return null; //返回参数值
}

很完美的获取到了name参数

可是遇到#号就蒙了

以下是优化后的

javascript代码

function getUrlParam(name) {
    var after = location.hash.split("?")[1] || location.search.split("?")[1];
    if (after) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        var r = after.match(reg);
        if (r != null) {
            return decodeURIComponent(r[2]);
        } else {
            return null;
        }
    }
}
本文为作者刘明野发布,未经允许禁止转载!
3085
2
1
发表留言

    过来学习下

    5年前

    财神进家门,好运进家门,有许多人会在新年时,祈求新的一年能赚大钱

友情链接