2016-05-25 2 views
-1

Я довольно новичок в JavaScript и хочу закодировать что-то, что будет генерировать серию данных для данной функции. Например, если пользователь вводит правило, такое как y = x + 2, я хотел бы иметь таблицу, которая будет показывать значение y, когда x равно 1 - 10.Есть ли способ создать калькулятор ввода/вывода с помощью javascript?

В любом случае я могу это сделать?

+0

Посмотрите на конструктор 'Function'. – Barmar

+0

@ Бармар: Боже нет, нет необходимости в этом. –

+0

@ T.J.Crowder Альтернатива - написать собственный синтаксический анализатор, не так ли? Не рекомендуется для новичков. Вы также можете использовать 'eval', что фактически так же, как создание функции. – Barmar

ответ

0

Использование Eval: http://www.w3schools.com/jsref/jsref_eval.asp

// Remove variable "y = " to get just the expression 
var userExpression = str.replace(/y\s*=\s*/i, document.getElementById('textbox_id').value); 

for (var i = 1; i < 11; i++) { 
    var x = i; 
    var y = eval(userExpression); 
    console.log("x: " + x + "\t y: " + y); 
} 

EDIT

Это если вы запускали его на той же странице, в том же браузере. Если вы планируете хранить оценочное выражение, а затем оцениваете его позже для других пользователей и сеансов браузера, это может легко открыть уязвимости безопасности. Поэтому вам нужно быть осторожным, как вы планируете использовать это.

+0

До тех пор, пока вы используете только пользовательский ввод для * them * и никогда не для кого-либо еще. –

+0

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

Смежные вопросы