Парсинг хеш-ссылки на объект в JavaScript? - PullRequest
0 голосов
/ 04 марта 2012

Я хотел бы выполнить процесс при загрузке страницы в зависимости от того, какой хэш в URL-адресе. Я думаю, что мне понадобится RegEx, потому что я ищу чистое решение JavaScript (без библиотечных зависимостей).

Что я пытаюсь сделать, если хеш равен "# / products", то я назову myIndex () иначе, если хеш равен "# / products / 3", тогда я назову "myDetail (id)", где "id" - это переменная номера продукта.

У кого-нибудь есть хорошая идея, как этого добиться?

1 Ответ

5 голосов
/ 04 марта 2012

Вот решение, которое сначала проверяет литеральную строку '#/products', избегая регулярного выражения там, где оно не нужно.

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

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