如何在JS的URL获得#hash值(How to get #hash value in a URL

2019-06-27 00:25发布

例如,我有一个网址为:

http://www.google.com/#hash=value2x

我想要一个js代码,只返回value2x 。 我试图location.hash.split('=')[1]但其导致所述第一散列值一样,如果URL是

http://www.google.com/#hfh=fdg&hash=value2x

它返回fdg&hash 。 我想的只是价值hash

NO jQuery的请。

我在这里先向您的帮助表示感谢。

Answer 1:

function getHashValue(key) {
  var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
  return matches ? matches[1] : null;
}

// usage
var hash = getHashValue('hash');


Answer 2:

怎么样

location.hash.split('hash=')[1].split('&')[0]

这将在分裂的散列hash=和散列后取的值=和任何其他参数之前。



Answer 3:

如果你正在做大量的URL操作,那么您768,16看看JQuery的网址插件 。

要访问的URL哈希的PARAMS

    $.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash');

或者,如果目前的网址

    $.url().fparam('hash');

希望能帮助到你



Answer 4:

location.parseHash = function(){
   var hash = (this.hash ||'').replace(/^#/,'').split('&'),
       parsed = {};

   for(var i =0,el;i<hash.length; i++ ){
        el=hash[i].split('=')
        parsed[el[0]] = el[1];
   }
   return parsed;
};

var obj= location.parseHash();
    obj.hash;  //fdg 
    obj.hfh;   //value2x


Answer 5:

该URLSearchParams类可重复用于此目的。

var urlParams = new URLSearchParams(window.location.hash.replace("#","?"));
var hash = urlParams.get('hash');


Answer 6:

关于拆分&再上=

pairs = location.hash.substr(1).split('&').map(function(pair) {
    var kv = pair.split('=', 2);
    return [decodeURIComponent(kv[0]), kv.length === 2 ? decodeURIComponent(kv[1]) : null];
})

这里pairs将与在键数组的数组0 ,并在值1

[["hfh","fdg"],["hash","value2x"]]


文章来源: How to get #hash value in a URL in JS