0

我的意思是只能进行逻辑和数学运算的函数3+5<=9"string"=="string" && (3<9 || 12>3)例如a+b<c"string".length > 3

编辑:

所以我找到了使用 eval() 的一个很好的理由......

4

2 回答 2

2

Tbh 我认为对您的问题最简单的答案是“不,没有”。

您可以自己编写一个,找到一个现有的(这将是一个 JS 库) - 或者获取一个解析器生成器来为您生成一个可以在 Javascript 上运行的解析器。

ANTLR就是这样一种工具/平台 - 您可以在下载页面上找到 Javascript 运行时下载。但是,您将需要 ANTLRWorks 工具来掌握它,并生成一个实际工作的 gammar。

一旦您知道自己在做什么,就可以在几分钟内启动并运行一个基本的数学解析器(支持四个主要运算符)。

于 2012-08-09T14:06:24.097 回答
0

是的,有一个解决方案:只需创建一个新的函数对象,它的优点是它不会污染范围......好吧,它看起来绝对更安全:https ://stackoverflow.com/a/7650148/393087

是的,我知道,这不是我真正想要的,但在安全方面更接近正确的方向。

于 2012-09-17T20:46:10.073 回答