为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用散列提取域?

如何使用散列提取域?

Cats萌萌 2021-05-11 17:32:25
我想从位置地址栏中提取不带长随机ID的哈希的域,使其显示如下:http://test.example.com/#inbox这是完整的URL:http://test.example.com/#inbox/U2FsdGVkX19stSSdMXLZq5v7bOgzRLtaM7Lr1t+lWpI=到目前为止,这是我尝试过的:var url = location.hash.split('#inbox')[1];我也尝试过这样:var url = $(location).attr("href").split('/')[2];不幸的是,没有长的随机ID,我没有得到我想要提取的域和哈希值。当我尝试时,它会提取域名和哈希(不带随机ID)以获取URL的返回输出,例如http://test.example.com/#inbox。
查看完整描述

3 回答

?
MM们

TA贡献1886条经验 获得超2个赞

我得到了整个URL,找到了“#”的位置,在其“#” +单词“ inbox”的计数中添加了6,并删除了URL的其余部分:


var url = document.URL;

var i = url.indexOf('#') + 6; // 6 is length of "#" + the word "inbox"

var answer = url.substr(0, i);


查看完整回答
反对 回复 2021-05-20
?
繁星coding

TA贡献1797条经验 获得超4个赞

我会用它indexOf()来找到'#'角色的位置。由于网址不能包含'#',因此可以安全地假设第一个'#'将是您感兴趣的网址。


然后,我将'/'再次搜索与indexOf(),所以the'#'和the之间的单词'/'可以更改,并且一切仍然按预期进行。


该位置是'/'以及可以返回的所有内容的位置,这是String.sub()函数的作用,并且它返回您要查找的URL:


var pos = location.href.indexOf('#')

pos = location.href.indexOf('/', pos)

var url = location.href.substr(0, pos)

尽管我不确定它是否完全可移植,但是另一种方法是使用位置字段,如下所示:


var url = location.origin + location.pathname + "#inbox"

如果"#inbox"零件可以更改,则可以location.hash像下面这样调整代码或搜索斜线:


var pos = location.hash.indexOf('/')

var url = location.origin + location.pathname + location.hash.sub(0, pos)

无论哪种方法都应该足够快(特别是因为您不需要循环这样的方法)。


查看完整回答
反对 回复 2021-05-20
  • 3 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信