使用Javascript从url获取空哈希值

时间:2015-12-29 17:12:35

标签: javascript url

使用window.location.hash我明白了:

http://example.com         --> ''
http://example.com#        --> ''
http://example.com#ahihah  --> '#ahihah'

但是,我需要区分这两种情况:

http://example.com         --> ''
http://example.com#        --> '#'
http://example.com#ahihah  --> '#ahihah'

所以当url(第一种情况)中没有哈希时,可以使用空字符串,但如果有哈希符号,我希望得到值'#'。这在JavaScript中是否可行?

我已经尝试过了。

var hash = window.location.hash;
var href = window.location.href;
if (hash !== '') {
  return link.hash;
}
if (href.slice(-1) === '#') {
  return '#';
}
return '';

但看起来像一个容易出错的方法。可能是网址中的查询字符串以#结尾,该函数将落入返回if而不是'#'的第二个''

1 个答案:

答案 0 :(得分:1)

你的方法很好。

查询字符串中不能包含#(它需要编码为%23,然后编译为href.slice(-1) === 3),因为这会被解释为哈希的开头,不是查询字符串的一部分。