Mitch.js
Sugar for getting data out of strings.
Usage
var pattern = '*/{date.year}-{date.month}-{slug}.(txt|md)';var m = ; ; //=> { date: {year: 2014, month: 1}, slug: 'bar' }; //=> { date: {year: 2014, month: 1}, slug: 'baz-qux' } ; //=> 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:
<!-- ... -->
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