如果我有这个;
我无法更改上述代码,我需要解析它,我需要对条件进行评估;
var a = "(true && false) && true && false"
如果我想评估这个字符串,有哪些选项?
如果我说,这段代码将在浏览器中生成,但绝对不会有用户输入,那么使用eval
是否安全?
如果不安全,解析它的最高效方法是什么?
编辑:
顺便说一下,该字符串是动态的,所以我不能保证它总是像上面那样,它可能是:
var a = "(true && false) || (true && (true && false)) && true && false"
提醒: 我知道可以使用eval,但我想知道为什么不应该使用eval,或者是否有其他选择?
编辑:原始问题:
var a = function(){ return false} // all of them always return a boolean
var b = function(){ return true}
var c = function(){ return true}
var d = function(){ return false}
var conditions = "(a && b) && c && d"
我无法更改上述代码,我需要解析它,我需要对条件进行评估;
eval()
,如果你想坚持这种方式,我认为没有其他方法。 - Mr. Alien