This library will create a Mongo-style regex from a "description" (a tuple of an operator and a value). This is useful for building UIs on top of Mongo or Sift $regex
operators.
Also see https://github.com/mixmaxhq/mongo-comparison-ops-description for the numerical counterpart to the library.
Example:
var regExpDescription = require('mongo-regex-description');
var regex = regExpDescription.create({
operator: 'is not',
value: 'my value',
});
// { $not: { $regex: '^my value$', $options: 'i' } }
var description = regExpDescription.parse({
$not: {
$regex: '^my value$',
$options: 'i',
},
});
// { operator: 'is not', value: 'my value' }
is
: Matches exactly, but case insensitivelyis not
: Negatesis
contains
: Matches ifvalue
exists inside, case insensitivelydoes not contain
: Negatescontains
starts with
: Matches ifvalue
exists at the beginning of the string, case insensitivelyends with
: Matches ifvalue
exists at the end of the string, case insensitively
- 1.2.2 Fixed issue where empty "ends with" was parsed incorrectly.
- 1.2.1 Fixed issue where empty strings weren't parsed.
- 1.2.0 Can be used in the browser (use
npm build
and consume the filedist/browser/index.js
) - 1.1.1 Reordered
supportedOperators
to put more commonly usedcontains
first. - 1.1.0 Added
require('mongo-regex-description').supportedOperators
array as a convenience. - 1.0.1
parse()
returns null if it can't parse the query. - 1.0.0 Initial release