Boolean expressions evaluator.
voll is based mayority bool but improved in some aspects:
- Exact word matching.
- Insensitive comparison support.
- Detect words based on unicode ranges.
- Caching level for speed up AST evaluation.
- Detect quotes words using scape quotes (
'or") for exact matches. - Operators alias (example:
red+yellowmeans the same thanred OR yellow).
Install
$ npm install voll --save
Usage
var voll = require('voll')
var test = voll('(red OR blue) AND (orange OR yellow)')
test('red') //=> false
test('yellow') //=> false
test('red yellow') //=> trueYou can build complex expressions as you need. Use parentheses to specify the preference:
((red OR blue) AND NOT (orange OR yellow)) OR orangeIn other case the preference is left to right. Also it handles malformed expressions. For example:
((red OR blue) AND NOT (orange yellow)) OR orangeProduces the follow error:
SyntaxError: Parse error on line 1:
...ue) AND NOT (orange yellow)) OR orange
-----------------------^Operators
| Operator | Alias |
|---|---|
AND |
|
OR |
+ |
NOT |
- |
API
voll(expr, [options])
expr
Required
Type: string
Boolean expression to be evaluated.
options
Type: object
Provide specific parser options
insensitive
Type: boolean
Default: false
Enable/Disable insensitive comparison.
cache
Type: boolean
Default: true
Enable/Disable caching.
cacheOpts
Type: object
Provide specific cache options. See mem#options.
License
Icon made by Darius Dan from flaticon.
MIT © Kiko Beats