JavaScript隔离哈希值

时间:2012-06-28 00:29:44

标签: javascript hash

从昨天开始跟进一个问题。我有一个更改值的哈希值,需要隔离后半部分。下面的代码可以工作,但是如果没有值则需要返回false,因为我稍后使用if (val.length){}并且它当前始终为真。所以,要证明:

var hash = window.location.hash,
    page = hash.split('=')[0],
    val  = hash.substr(hash.indexOf('=') + 1);

    console.log(hash,page,val);

localhost/#work
console returns: #work, #work, #work

localhost/#work=misery
console returns: #work=misery, #work, misery

我希望它能够回归:

localhost/#work
console returns: #work, #work, (no value for val)

localhost/#work=misery
console returns: #work=misery, #work, misery

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

只需使用与页面相同的方法:

var hash = window.location.hash,
    values = hash.split("="),
    page = values[0],
    val  = values[1];

console.log(hash,page,val);

localhost/#work
console returns: #work, #work, undefined

localhost/#work=misery
console returns: #work, #work, misery

P.S。 我建议你添加JavaScript标签,然后删除jQuery,因为这是一个与jQuery完全无关的问题。

答案 1 :(得分:0)

只需添加一些逻辑来检查是否有值

var hash = window.location.hash,
    values = hash.split("="),
    page = values[0],
    val  = values[1]?values[1]:'';//you can use if (val.length){} to check if ther is a value

console.log(hash,page,val);