Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как преобразовать выражение типа "1/2" (https://javascript.ru/forum/misc/41375-kak-preobrazovat-vyrazhenie-tipa-1-2-a.html)

oxpannik 11.09.2013 10:51

Как преобразовать выражение типа "1/2"
 
Доброго времени суток, подскажите как избежать ситуации когда "+" не может преобразовать такое выражение как "1 / 2"
Например, если я в первом prompt ввел "9", а во втором "1/2" выдаст NaN:
var valOperand = + prompt("Введите число для возведения в степень", "");
var valExponent = + prompt("Введите степень", "");
// valOperand = 9;
// valExponent = 1 / 2;

alert( Math.pow(valOperand, valExponent) );

Заранее спасибо.

danik.js 11.09.2013 11:11

Как вариант.
var valOperand = eval(prompt("Введите число для возведения в степень", ""));
var valExponent = eval(prompt("Введите степень", ""));
 
alert( Math.pow(valOperand, valExponent) );

Идеальный же вариант - создание парсера выражений (смотри http://zaach.github.io/jison/demos/calc/)

BETEPAH 11.09.2013 11:15

Цитата:

Сообщение от danik.js
eval(prompt("Введите степень", ""));

использовать eval в паре с promt нужно крайне осмотрительно. Следует убедиться, что данные операций никуда не записываются и обрабатываются только у того клиента, который вводит. Или проверять вводимое на соответствие шаблону.


Часовой пояс GMT +3, время: 22:49.