0.0.6 • Published 9 years ago
checkcond v0.0.6
checkcond
Checks digit, date or string value against condition string.
For usage stand alone or e.g. in decision tables -> DMN Notation.
Usage
const compiler = require('checkcond').Compiler;
const check = require('checkcond').Check;
let condString = '[7..10]';
let x = 8;
let cond = compiler(condString);
let result = check(x, cond); // => trueor via combined processing of compile + check:
const checkDirect = require('checkcond').CheckDirect;
let condString = '[7..10]';
let x = 8;
let result = checkDirect(x, condString); // => trueExamples
Check digits.
'< 1.000'.
x=-5 => true
x=0.001 => true
x=8 => false
x=10000 => false">= 5"
x=4 => false
x=5 => true
x=5.001 => true
x=8 => true">= 5.001"
x=5 => false
x=5.001 => true
x=8 => true'[5..10]' between 5 and 10
x=5 => true
x=10 => true
x=11 => false'< 10, [5..100]' less then 10 or between 5 and 100
x=1 => true
x=5 => true
x=100 => true
x=101 => false'< 1000, !([5..100])' less then 1000 and not between 5 and 100
x=-50 => true
x=4 => true
x=5 => false
x=100 => false
x=100.1 => true'[5.05..10.05],[70..100],-10.56'
x=5.06 => true
x=85 => true
x=20 => false
x=-10.56 => true
x=-10 => false
x=100 => true'not(5,[7..9],12)'
x=5 => false
x=6 => true
x=7 => false
x=9.05 => true
x=12 => false
x=13 => trueCheck dates
Supported date formats for conditions and values are:
- mm/dd/yyyy
- yyyy/mm/dd
- yyyy-mm-dd
- dd.mm.yyyy
'< 01/01/2017'.
x='10/12/2015' => true
x='05/03/2017' => false'> 03.11.2017'.
x='12/01/2017' => true
x='10/04/2017' => false'[01/01/2017..01/01/2018]'.
x='10/12/2015' => false
x='01/01/2017' => true
x='05/06/2017' => true
x='01/01/2018' => true
x='01/01/2019' => false
x='05/03/2019' => false'not([01/01/2017..01/01/2018])'.
x='10/12/2015' => true
x='01/01/2017' => false
x='05/06/2017' => false
x='01/01/2018' => false
x='01/01/2019' => true
x='05/03/2019' => trueCheck strings against arrays
"'AL','FGH','NO'"
x='AL' => true
x='AF' => false"AL,FGH,NO" works also
x='AL' => true
x='AF' => false"not('AL','FGH','NO')"
x='AL' => false
x='AF' => true"not(AL,FGH,NO)"
x='AL' => false
x='AF' => true"!('AL','FGH','NO')"
x='AL' => false
x='AF' => true