从javascript字符串中提取变量以创建eval()范围

时间:2019-09-23 20:20:13

标签: javascript eval

我有一个应用程序,管理员可以在某些情况不匹配的情况下使用JavaScript编写自己的表达式。

此刻,我创建一个用户可以输入如下内容的环境:

global.myVariable.d > 10 && global.myOtherVariable.w < 5

我会打电话给eval("global.myVariable.d > 10 && global.myOtherVariable.w < 5")

如果我未设置包含所有变量的全局对象,则评估将抛出错误(global.myVariable未定义)

但是在全局对象中设置所有可能的键,使其可以匹配所有可能的myVariables是一项艰巨的任务,因此,我只想设置特定eval字符串中所需的那些键。

是否存在从此类javascript字符串中过滤变量的明智方法? 当然,全球之后的一切。直到。可以重新表达,但是global [“ myVariable”] 甚至是更复杂的符号,例如let mondial = global; mondial.myVariable;

如果我知道询问“ myVariable”,则可以在调用eval字符串之前创建全局{}。

0 个答案:

没有答案