Checks digit, date or string value against condition string.
For usage stand alone or e.g. in decision tables -> DMN Notation.
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); // => true
or via combined processing of compile + check:
const checkDirect = require('checkcond').CheckDirect;
let condString = '[7..10]';
let x = 8;
let result = checkDirect(x, condString); // => true
'< 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 => true
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' => true
"'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