我有一个包含 bool 逻辑的字符串,例如:
var test = "(true)&&(false)&&!(true||true)"
在这种情况下,在 JavaScript 中评估此字符串以获得 bool 值 false 的好方法是什么
- 我知道我们可以使用 eval() 或 new Function().. - 但这是一种安全的方法吗?
- 我猜另一个选择是编写自定义解析器。作为一个刚接触 JS 的人,这需要付出很多努力吗?我找不到 bool 逻辑表达式解析器的任何示例
- 还有其他选择吗?
最佳答案
只要你能保证安全,我觉得你可以用eval。
也许在进行评估之前对其进行处理?
var test = "(true)&&(false)&&!(true||true)"
var safe = test.replace(/true/ig, "1").replace(/false/ig, "0");
var match = safe.match(/[0-9&!|()]*/ig);
if(match) {
var result = !!eval(match[0]);
}
关于javascript - 评估在 JavaScript 中给出 bool 表达式的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36348452/