如何使用Javascript从URL哈希返回整数

时间:2011-09-15 03:21:46

标签: javascript jquery

我想运行一个从URL哈希(#)中提取整数的脚本,如果没有找到整数则返回零。

网址可以是以下任何格式:

  1. www.example.com/book/#page-cover
  2. www.example.com/book/#page-1
  3. www.example.com/book/#page-12
  4. www.example.com/book/#page-123
  5. 以上示例将返回:

    1. 0
    2. 1
    3. 12
    4. 123
    5. 我正在运行jQuery并在纯Javascript或jQuery中寻找最简洁的方法。

      提前致谢。

2 个答案:

答案 0 :(得分:4)

你可以在一行中完成:

var integer = window.location.hash.match(/\d+/) | 0;
  • 这将匹配散列中的前一个或多个数字。
  • 然后按位或者结果为0. Javascript位操作在32位有符号整数上(>>>除外)
  • 以整数形式返回匹配结果,或者如果匹配未定义,则返回零

答案 1 :(得分:2)

要获取散列中的第一个整数(不是小数),可以使用正则表达式:

var match = location.hash.match(/\d+/);
if(match)
  var n = parseInt(match[0], 10);
else
  var n = 0;