2013-05-19 3 views
-1

У меня есть этот маленький пример:Как выполнить арифметическую операцию внутри строки в Javascript?

var myoperation = "2+2"; 
var myoperation2="2*5/3"; 
var myoperation3="3+(4/2)" 

есть в любом случае, чтобы выполнить это и получить результат?

Большое спасибо!

+1

Что все операции могут струна есть? – Dogbert

+1

'eval', который тоже злой. – Antony

+1

Существует eval, или создается скрипт для разбора файла вручную. Который вы используете, зависит от того, сколько усилий вы готовы потратить, и является ли это пользовательским вводом или нет. –

ответ

2

Использование eval MDN: https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/eval

Некоторые люди говорят, что это зло, но он был разработан для точной цели;

console.log(eval(myoperation)); // 4 
console.log(eval(myoperation2)); // 3.33 
console.log(eval(myoperation3)); // 5 
+0

Он может запускать любой введенный JavaScript-код. Я бы сказал, что PHP 'eval()' опасен, но в JavaScript ... что может быть самым худшим? – Havenard

+2

http://stackoverflow.com/questions/86513/why-is-using-the-javascript-eval-function-a-bad-idea – Achrome

+0

Не используйте eval, используйте (новая функция (strCode))(), проверьте, что Джей Гарсиа и команда ModusCreate пошёл по ссылке выше: http://moduscreate.com/javascript-performance-tips-tricks/ Почему? представление. – Jason

3

Вы можете использовать функцию eval(). Для например: eval("2+2")

0

Передача строки в функцию eval().

1

Для этого можно использовать eval.

enter image description here

Не передавать любые данные от удаленного сервера eval прежде, чем утвердить его. Повреждение может быть выполнено с помощью eval.

0

вы можете использовать Function

var result = new Function("return " + "2+2")(); 
0

Вы можете сделать это, кроме eval:

function run(myoperation) { 
    return new Function('return ' + myoperation + ';').call(); 
} 

run('2+2'); // return 4 
Смежные вопросы