如果觉得代码库太大,可以参考我以前写的表达式分析算法的文章

https://blog.csdn.net/jiexiaopei_2004/article/details/41546673



项目地址: https://github.com/mengjieli/WeChatGame

目前支持的功能
1. 数据类型有 number,bool,string 以及 变量
2. 运算符有 + - * / % ! << >> >>> > < >= <= == === !== != & ~ ^ | && || ?: ()

使用非常简单,把 Binding.js copy 到项目里面即可。
如果真机跑不通没有 window 函数,可以把 Binding.js 最后的 window.binding = binding 改成 wx.binding = binding,然后使用改成 wx.binding.eval

用法:

  1. simple expr
console.log(binding.eval("(1 + 2) * 4 / 2")); //console 6



2. expr with var

var v0 = 3;
console.log(binding.eval("$0 * 4",[v0])); //console 12



3. expr with var and function

var v0 = 3;
var v1 = 6;
console.log(binding.eval("Math.sqrt($0 * 3 * $1 * 6)",[v0,v1])); //console 18



4. expr with var and self-define function

var v0 = 9;
var addFunction = function(a,b) {
    return a + b;
}
console.log(binding.eval("add(Math.sqrt($0), 2)",[v0],{add:addFunction})); //console 5



5. 3 op expr

console.log(binding.eval("3 > 2 ? true : false")); //console true


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐