用JavaScript编写函数。该计划是函数创建一个对象,它需要布尔语句作为参数。像这样的东西 - >
var foo = new fuzz("pie < squirrel", "monkey === banana");
我的问题是 - 这是邪恶的吗?
* 注 - * 在函数'fuzz'中,我将运行参数值的检查。 (检查string.length等)。我认为这就是人们如何使用eval,它在网络上的声誉如此糟糕。
由于
答案 0 :(得分:3)
总结评论中的结论:编写一个简单的规则评估引擎! E.g:
var variables = { ... };
function niceEval(condition) {
var operands = condition.match(/(\w+)\s+(\S+)\s+(\w+)/);
switch (operands[2]) {
case '<' :
return variables[operands[1]] < variables[operands[3]];
...
}
}
与盲目地eval
字符串相比,这也使您可以更好地控制可能发生的错误。