例如,我有一个 URL:
我想要一个 js 代码只返回value2x
. 我试过location.hash.split('=')[1]
了,但结果是第一个哈希值,比如 url 是
它返回fdg&hash
。我只想要hash
.
请不要 jQuery。
我在这里先向您的帮助表示感谢。
例如,我有一个 URL:
我想要一个 js 代码只返回value2x
. 我试过location.hash.split('=')[1]
了,但结果是第一个哈希值,比如 url 是
它返回fdg&hash
。我只想要hash
.
请不要 jQuery。
我在这里先向您的帮助表示感谢。
function getHashValue(key) {
var matches = location.hash.match(new RegExp(key+'=([^&]*)'));
return matches ? matches[1] : null;
}
// usage
var hash = getHashValue('hash');
可以为此目的重用 URLSearchParams 类。
var urlParams = new URLSearchParams(window.location.hash.replace("#","?"));
var hash = urlParams.get('hash');
怎么样
location.hash.split('hash=')[1].split('&')[0]
这将拆分散列hash=
并在 hash= 之后和任何其他参数之前获取值。
如果您正在进行大量的 url 操作,那么您应该查看JQuery URL plugin。
访问 url 哈希中的参数
$.url('http://www.google.com/#hfh=fdg&hash=value2x').fparam('hash');
或者如果它的当前网址
$.url().fparam('hash');
希望能帮助到你
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
拆分&
,然后拆分=
:
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
将是一个数组数组,其中键为 at 0
,值为 at 1
:
[["hfh","fdg"],["hash","value2x"]]
如果网址有?
:http ://www.google.com/#?hash=value2x
代码可以是:
const url = 'http://www.google.com/#?hash=value2x';
new URLSearchParams(
(
new URL(url)
).hash.slice(1).split('?')[1]
).get('hash');
或者如果url
没有?
:
const url = 'http://www.google.com/#hash=value2x';
(new URLSearchParams((new URL(url)).hash.slice(1))).get('hash')