支持算数运算,逻辑运算,变量取值,内置大量函数。支持自定义函数注册,自定义变量表达式。
公式表达式
SUM({user.age},{count}, IF({user.age} > 18,SUM(7,8),2),{count})
执行结果
使用示例
const formulaEngine = new FormulaEngine({
// 注册自定义函数
functions: {
'GETUSERNAME': function(users) {
if(!users || !Array.isArray(users)) return ''
return users.map(user=> user.name).join(',')
},
'TODAY': function() {
return new Date().getTime();
}
},
// 自定义变量匹配规则
variableToken: {
name: "VARIABLE",
pattern: /{.*?}/,
}
});
执行
// 传入公式表达式,参数
const res = formulaEngine.exec('SUM({user.age},{count}, IF({user.age} > 18,SUM(7,8),2),{count})', {"count": 15, "user": {"age": 18}});
console.error('执行结果===>', res)