在JavaScript中解析哈希url到对象?

Tru*_*an1 0 javascript regex url cross-browser url-routing

我想在页面加载上执行一个进程,具体取决于URL中的哈希值.我想我需要RegEx,因为我正在寻找一个纯JavaScript解决方案(没有库依赖).

我想要做的是如果哈希是"#/ products",那么我将调用"myIndex()"否则如果哈希是"#/ products/3",那么我将调用"myDetail(id)",其中"id"是产品编号的变量.

有人知道如何实现这个目标吗?

Mat*_*ens 5

这是一个'#/products'首先检查文字字符串的解决方案,避免使用不必要的正则表达式.

var hash = location.hash,
    regexID = /^#\/products\/(\d+)$/,
    matches;

if (hash == '#/products') {
  myIndex();
} else if (matches = hash.match(regexID)) {
  myDetail(matches[1]);
}
Run Code Online (Sandbox Code Playgroud)