如何在JS中的URL中获取#hash值

Aks*_*tal 15 javascript url

例如,我有一个URL:

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

我想要一个js代码返回value2x.我试过,location.hash.split('=')[1]但结果是第一个哈希值,如果url是

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

它回来了fdg&hash.我只想要的价值hash.

没有jQuery请.

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

xda*_*azz 40

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

// usage
var hash = getHashValue('hash');
Run Code Online (Sandbox Code Playgroud)

  • 这会产生“hash=”之后的所有内容 (2认同)

nis*_*yal 9

URLSearchParams 类可以重用于此目的。

var urlParams = new URLSearchParams(window.location.hash.replace("#","?"));
var hash = urlParams.get('hash');
Run Code Online (Sandbox Code Playgroud)

  • 或者您也可以使用“window.location.hash.slice(1)”代替。 (3认同)
  • 该代码是不正确的。而不是用“?”替换“#” 它应该删除“#”。因此将replace("#","?") 替换为slice(1) (2认同)

Mus*_*usa 5

怎么样

location.hash.split('hash=')[1].split('&')[0]
Run Code Online (Sandbox Code Playgroud)

这将在处拆分哈希值,hash=并在hash =之后和其他任何参数之前获取值。