@WQP

Как преобразовать строку в математическое выражение?

Здравствуйте, хотелось бы узнать ответ на этот вопрос.

Имеем строку 5-10+7*5-(100/2) как преобразовать её в ответ? Строка разумеется каждый раз разная. Используется только +-*/
  • Вопрос задан
  • 4670 просмотров
Пригласить эксперта
Ответы на вопрос 3
IonDen
@IonDen
JavaScript developer. IonDen.com
eval("string"); //выполнит все что там внутри.
eval("5-10+7*5-(100/2)"); // -20
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Если Вы точно уверены в получаемой строке, и что ничего лишнего там не подсунут, а так же Вам не критична производительность, то так:
function calculateString(str) {
  return (new Function('return ' + str))();
}
Можно и через eval, но eval еще медленнее чем new Function и к тому же отключает оптимизацию

Если строка приходит от пользователя, то выше указанный способ не является безопасным, так как пользователь может выполнить там что угодно, поэтому более правильно делать лексический разбор выражения, разбивать на атомарные операции, отсортировать в порядке приоритета и выполнять
Ответ написан
Комментировать
Теги вводят в заблуждение. Вам надо таки PHP или JavaScript?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы