我有一个应用程序,管理员可以在某些情况不匹配的情况下使用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字符串之前创建全局{}。