Sugar for getting data out of strings.
var pattern = '*/{date.year}-{date.month}-{slug}.(txt|md)';
var m = mitch(pattern);
m('foo/2014-01-bar.TXT'); //=> { date: {year: 2014, month: 1}, slug: 'bar' }
m('bar/2014-01-baz-qux.md'); //=> { date: {year: 2014, month: 1}, slug: 'baz-qux' }
m('invalid'); //=> false
-
Matching is not case-sensitive. Use
mitch(pattern, true)
for case-sensitive matching. -
The compiled RegExp is cached after the initial call to
mitch
. -
*
is a wildcard that matches one or more characters. -
(txt|md)
is to match against one oftxt
ormd
. An option may contain wildcards, eg.(foo*|*bar)
. -
Enclose capturing groups in curly braces. Dot-delimited capturing groups (eg.
date.year
anddate.month
) will be “expanded” accordingly. Also note that the2014
and1
extracted are Numbers; where possible, values extracted will be cast to a primitive type. (See Stereotype.js.)
More usage examples are in the tests.
Returns values extracted from str
based on pattern
. If str
does not match the given pattern
, returns false
. If there are no capturing groups or wildcards in pattern
, returns true if pattern
is strictly equal (===
) to str
, else returns false.
pattern
is a String to match thestr
against.caseSensitive
defaults tofalse
.str
is a String to extract values from.
Install via npm:
$ npm i --save mitch
Install via Bower:
$ bower i --save yuanqing/mitch
To use Mitch in the browser, include the minified script in your HTML:
<body>
<!-- ... -->
<script src="path/to/dist/mitch.min.js"></script>
<script>
// mitch available here
</script>
</body>
- 0.4.0
- Refactor RegExp compilation logic
- Make string matching case-insensitive by default
- Add support for “options”, eg.
(foo|bar)
,(foo*|*bar)
- 0.3.0
- Refactor RegExp compilation logic
- Add wildcard (
*
) support - Add Browserified bundle
- Add
bower.json
- 0.2.0
- Allow dot-delimited keys
- 0.1.0
- Initial release