Извлечение переменных из строки JavaScript для создания области видимости eval () - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть приложения, в которых администратор может использовать JavaScript для написания собственных выражений, если определенные ситуации совпадают или нет.

На данный момент я создаю среду, в которой пользователь может ввести что-то вроде этого:

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

Я позвоню eval("global.myVariable.d > 10 && global.myOtherVariable.w < 5")

Если я не настрою глобальный объект, содержащий ВСЕ переменные, eval выдаст ошибку (global.myVariable не определено)

Но установка всех возможных ключей в глобальном объекте так, чтобы он мог соответствовать всем возможным myVariables, является огромной задачей, поэтому я хочу установить только те ключи, которые необходимы в конкретной строке eval.

Есть лиумный способ фильтрации переменных из такой строки JavaScript?Конечно, все после глобального.и до.может быть регулярным выражением, но как насчет глобальных ["myVariable"] или даже более сложных нотаций, таких как let mondial = global; mondial.myVariable;

Если я знаю, что спрашивается myVariable, я могу создать глобальный {} перед вызовом строки eval.

...