mitch v0.4.0
Mitch.js

Sugar for getting data out of strings.
Usage
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'); //=> falseMatching 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 oftxtormd. An option may contain wildcards, eg.(foo*|*bar).Enclose capturing groups in curly braces. Dot-delimited capturing groups (eg.
date.yearanddate.month) will be “expanded” accordingly. Also note that the2014and1extracted are Numbers; where possible, values extracted will be cast to a primitive type. (See Stereotype.js.)
More usage examples are in the tests.
API
mitch(pattern , caseSensitive = false)(str)
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.
patternis a String to match thestragainst.caseSensitivedefaults tofalse.stris a String to extract values from.
Installation
Install via npm:
$ npm i --save mitchInstall via Bower:
$ bower i --save yuanqing/mitchTo use Segue 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>Changelog
0.4.0
- Refactor RegExp compilation logic
- Change string matching to be case-insensitive
- 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