У меня есть приложения, в которых администратор может использовать 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.