/condition.js

构建“条件表达式”,并通过条件表达式来进行简单的判断。

Primary LanguageJavaScriptApache License 2.0Apache-2.0

#condition.js

Condition.js 是一个用来写“条件表达式”来进行判断的库。通过一定方法写出“条件表达式”后即可对输入数据进行复杂的条件判断。

条件表达式

“条件表达式”本身是一个可支持嵌套的数组。

一个最基本的“条件表达式”拥有以下板式:

[flag,arg1,arg2,arg3,...argN]

其中,flag表示条件标志,即需要对后面的参数进行怎样的判断。 如:$eq(==) 即表示判断arg1 是否== arg2;

而一个条件表达式的返回值只有两个:truefalse.

如:["$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"]