[英]Extract variables from javascript string to create eval() scope
我有一个应用程序,如果某些情况匹配或不匹配,管理员可以使用 JavaScript 编写自己的表达式。
此时我创建了一个环境,用户可以在其中输入如下内容:
global.myVariable.d > 10 && global.myOtherVariable.w < 5
我将调用eval("global.myVariable.d > 10 && global.myOtherVariable.w < 5")
如果我没有设置包含所有变量的全局 object,则 eval 将抛出错误(global.myVariable 未定义)
但是在全局 object 中设置所有可能的键以便它可以匹配所有可能的 myVariables 是一项艰巨的任务,所以我只想设置特定 eval 字符串中需要的那些键。
有没有一种聪明的方法可以从这样的 javascript 字符串中过滤变量? 当然,全球之后的一切。 直到。 可以正则表达式,但是 global["myVariable"] 或者更复杂的符号比如let mondial = global; mondial.myVariable
呢? let mondial = global; mondial.myVariable
;
如果我知道 'myVariable' 被询问,我可以在调用 eval 字符串之前创建全局 {}。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.