从字符串中提取数值并检查是否存在

时间:2011-03-21 23:31:39

标签: javascript regex

我有当前的哈希#link1234

我需要查看javascript:

  • 当前window.location有一个哈希
  • 以#link [0-9] +
  • 的形式出现

如果一切都好,我必须提取该号码..

这可能吗? (也许是与ereg?)

由于

2 个答案:

答案 0 :(得分:2)

使用此选项匹配1后跟任意数量的其他数字:

var res = /#link(1\d*)$/.exec(window.location)

或者为了匹配任何数字组合,请使用:

var res = /#link(\d+)$/.exec(window.location)

这相当于:

var res = /#link([0-9]+)$/.exec(window.location)

如果没有匹配,res的值将为null。否则,res将是一个在其第二个位置具有匹配数字的数组,可以这样引用:

res[1] // contains any matched digits

答案 1 :(得分:0)

当然,这可能比你想象的更简单。

检查当前window.location是否有哈希:

if (window.location.hash !== "") {
    // a hash exists!
}

散列的提取数量具有给定格式:

var hash = '#link1234';
var regex = /^#?link([0-9]+)$/i;
var match = regex.exec(hash);
if (match != null) {
    var num = m[1];
}

regexp使用明确定义的值“link”。如果你使用其他类型的哈希值,你必须调整它。