例如,我的网址为:
我希望js代码只返回value2x
。
我尝试了location.hash.split('=')[1]
,但这会导致第一个哈希值,如果url是
返回fdg&hash
。
我只想要hash
的价值。
没有jQuery请。
感谢您的帮助。
答案 0 :(得分:39)
function getHashValue(key) {
var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
return matches ? matches[1] : null;
}
// usage
var hash = getHashValue('hash');
答案 1 :(得分:4)
怎么样
location.hash.split('hash=')[1].split('&')[0]
这将在hash=
处拆分哈希值,并在哈希=之后和任何其他参数之前取值。
答案 2 :(得分:2)
如果您正在进行广泛的网址操作,那么您应该查看JQuery URL plugin。
访问url哈希中的参数
$.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash');
或者当前的网址
$.url().fparam('hash');
希望有所帮助
答案 3 :(得分: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
答案 4 :(得分:2)
URLSearchParams类可用于此目的。
var urlParams = new URLSearchParams(window.location.hash.replace("#","?"));
var hash = urlParams.get('hash');
答案 5 :(得分: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"]]