Simplest hashchange regex router.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
example
tests
.gitignore
LICENSE
Makefile
README.md
package.json
router.js

README.md

hash-regex-router

Client-side hashchange regex router for singe-page applications. Works on Chrome 5, Firefox 3.6 and IE 10+.

Routes are processed in the order they are added.

Examples/API

Basic usage:

route(/^about/, function() {
    console.log('Showing the About page');
});

With capture groups:

route(/^profile\/([0-9]+)/, function(uid) {
    console.log('Showing the profile page for user ' + uid);
});

Default route:

route(/.*/, function() {
    route.go('home');
});

Programmatically go to a route (#home):

route.go('home');

Goes to #profile/123:

route.go('profile', 123);

Refresh the current route:

route.refresh();

Disable routing:

route.disable();

Re-enable routing:

route.enable();

Prevent leaving current route:

route.leave = function() {
    return confirm('Leave the current route?');
};

AMD/CommonJS

The source router.js uses CommonJS module format. dist/router-standalone.js contains minified build in UMD format that supports both AMD and CommonJS environments and also sets global route when directly in browser.

Installing from NPM:

npm install hash-regex-router

If installed through NPM then the module can be directly used in browserify by simply require()'ing it:

var route = require('router');

Building/testing

Install build dependencies:

npm install

Run static server:

make serve-test

Run tests:

make test

License

The MIT license.