mitch
v0.4.0
Published
Sugar for getting data out of strings.
Downloads
5
Readme
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'); //=> 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.
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.
pattern
is a String to match thestr
against.caseSensitive
defaults tofalse
.str
is a String to extract values from.
Installation
Install via npm:
$ npm i --save mitch
Install via Bower:
$ bower i --save yuanqing/mitch
To 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