Skip to content
This repository has been archived by the owner on Mar 11, 2018. It is now read-only.

yuanqing/mitch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mitch.js Experimental npm Version Build Status Coverage Status

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
  1. Matching is not case-sensitive. Use mitch(pattern, true) for case-sensitive matching.

  2. The compiled RegExp is cached after the initial call to mitch.

  3. * is a wildcard that matches one or more characters.

  4. (txt|md) is to match against one of txt or md. An option may contain wildcards, eg. (foo*|*bar).

  5. Enclose capturing groups in curly braces. Dot-delimited capturing groups (eg. date.year and date.month) will be “expanded” accordingly. Also note that the 2014 and 1 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 the str against.
  • caseSensitive defaults to false.
  • 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 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>

Changelog

  • 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

License

MIT license

About

[DEPRECATED] Sugar for getting data out of strings.

Resources

License

Stars

Watchers

Forks

Packages

No packages published