murl is fast url pattern matching and replacing. It's avaiable through npm:
npm install murl
murl exposes a single function that accepts a pattern
var murl = require('murl')
var pattern = murl('/{hello}')
If you pass a string to the pattern murl will try and match it
pattern('/world') // -> {hello:'world'}
If you pass an object it will replace into the pattern
pattern({hello:'world'}) // -> '/world'
You can use ?
to specify a group as optional
// matches both '/a' and '/a/b'
murl('/{hello}/{world}?')
Per default the {}
groups matches until the next character or /
.
// matches '/a' but not '/a/b'
murl('/{hello}')
// matches '/200x200'
murl('/{wid}x{hei}')
Use *
to match anything
// matches '/a', '/a/b/c' and so on
murl('/*')
Per default murl will disregard trailing /
from the input string.
Pass {strict:true}
to disable this.
var pattern = murl('/{hello}', {strict:true});
console.log(pattern('/world/')); // returns null
console.log(pattern('/world')) // return {hello:'world'}
MIT