ロケーションハッシュの内容を文字列にマップしたい。マッピングは、以下のパターンに基づいている必要があります (:Placeholder は任意の数値、おそらく RegEx でしょうか?)。関数でこれを処理する最良の方法は何ですか?
'news/:NewsID/dup' => 'newsDuplicate',
'news/:NewsID' => 'newsDetail',
'news/:NewsID/authors' => 'authorsList',
'news/:NewsID/authors/' => 'authorsList',
'news/:NewsID/authors/create' => 'authorsCreate',
'news/:NewsID/authors/:AuthorID' => 'authorDetail',
'news/:NewsID/authors/:AuthorID/orders' => 'orders',
'news/:NewsID/authors/:AuthorID/workflow' => 'workflow',
'news/:NewsID/authors/:AuthorID/tags' => 'tags'
ナビゲーションで正しいボタンを強調表示しようとしていますが、パターンに基づいて正しいボタンを強調表示する handleNav() のような関数が必要でした。
たとえば、http://mydomain.com#!news/123/authors/987の場合、次のようなことができます。
function handleNav() {
var current = ?? //get mapped string above
$('button.' + current).addClass('active').siblings().removeClass('active');
}
マッピングに基づいて上記の「現在の」変数を取得するにはどうすればよいですか? 一連の if-else ステートメントが最善の方法であるかどうかはわかりません。また、正規表現もあまり知りません。助けや洞察をありがとう。