2012-08-12 77 views

回答

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

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

This res超过'哈希=' – 2012-08-12 08:30:17

+0

@AkshatMittal编辑后的所有内容。 – xdazz 2012-08-12 08:38:27

+0

现在可以使用! – 2012-08-12 08:39:40

3

如何

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

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

+0

这是很不正常工作,使其成为'的位置.href.split('hash =')[1] .split('&')[0]'作品 – 2012-08-12 08:31:35

+0

需要测试更多,现在Upvoting – 2012-08-12 08:32:00

1

分割上&,然后=

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"]] 
2

如果您正在做广泛的网址操作,那么你应该检查出JQuery URL plugin

要访问的URL PARAMS哈希

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

,或者如果其当前的URL

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

希望它可以帮助

+0

这有助于我在此之前,对不起,我没有更早指定,但我不想使用jQuery。 – 2012-08-12 08:35:07

2
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