#condition.js
Condition.js 是一个用来写“条件表达式”来进行判断的库。通过一定方法写出“条件表达式”后即可对输入数据进行复杂的条件判断。
“条件表达式”本身是一个可支持嵌套的数组。
一个最基本的“条件表达式”拥有以下板式:
[flag,arg1,arg2,arg3,...argN]
其中,flag
表示条件标志,即需要对后面的参数进行怎样的判断。
如:$eq
(==) 即表示判断arg1 是否== arg2;
而一个条件表达式的返回值只有两个:true
和 false
.
如:["$eq",1,2] 的返回值是false;
Note:事实上,以下语句是等价的:
["$eq",1,2] <==> (1 == 2) //返回值都为false
条件表达式可以支持嵌套。 如:
["$and", ["$eq",1,2],["$eq","http","https"]]
<==>
(1 == 2) && ("http" == "https") //false
目前支持的flag:
flag description example (以下的返回值都为true)
|** 基本判断 **|
$eq(==) 相等 ["$eq",1,"1"]
$eqs(===) 严格相等 ["$eqs",100,100]
$ne(!=) 不相等 ["$ne",1,"2"]
$nes(!==) 不相等(严格) ["$nes",100,200]
$lt(<) 小于 ["$lt",100,120]
$lte(<=) 小于等于 ["$lte",25,25]
$gt(>) 大于 ["$gt",90,60]
$gte(>=) 大于等于 ["$gte",10,0]
|** 复合判断 **|
$and(&&) 与 ["$and",["$eq",1,1],["$lt",100,200]]
$or(||) 或 ["$or",["$eq",10,10],["$gt",10,5]]
$not(!) 非 ["$not",false]
|** 其他判断 **|
$match 匹配 ["$match",/^10+/,"10.10.78.90"]