如何从哈希数据中删除#号?jQuery?

8

我需要从URL中获取哈希值...

var hash = window.location.hash;

那么我该如何去掉井号(#)符号呢?

可能是JavaScript中slice()和substr()的区别是什么?的重复问题。 - Danubian Sailor
1
@alex23 放松。我仍然无法批准答案,还剩1分钟。 - user796443
5个回答

13

就这么简单。

var hash = window.location.hash.substr(1)

还有这两个返回完全相同的:

var hash = window.location.hash.slice(1)
var hash = window.location.hash.substring(1)

String.slice()稍晚被添加到规范中,但这可能并不重要。

如下所述使用replace也是一种选择。

如果window.location.hash字符串为空,则这些选项都不会抛出错误或警告,因此真正取决于您的偏好使用哪个选项。


6
你可以这样做 -
hash = hash.replace(/^#/, '');

我认为 hash.replace('#','')slice(1) 更安全。 - rab
在这种情况下,您可能希望使用 hash.replace(/^#/, ''),以便仅删除前导的 #,而不是哈希的一部分。 - MildlySerious

1

只需切掉第一个字符:

 var hash = window.location.hash.slice(1);

0

你可以简单地做

 var hash = window.location.hash.slice(1);

请注意,如果位置中没有哈希标记,它不会产生错误,而是返回空字符串""

0

window.location.href.substr(0, window.location.href.indexOf('#')) 这行代码可以解决问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接