Выражение в текстовом формате TypeScript

Рейтинг: -5Ответов: 2Опубликовано: 08.07.2023

Имеется строка

var text = '5 + 7 + 9 * (5-1*2) -1'

Можно ли каким то образом вычислить значение выражения в скобках?

Ответы

▲ 0

Вы можете использовать регулярные выражения:

var re = /\(.+\)/;
var text = '5 + 7 + 9 * (5-1*2) -1'

result = re.exec(text)

if (result) console.log(eval(result[0]))
▲ 0

Да, можно. Для этого есть встроенная функция eval.

ПРЕДУПРЕЖДЕНИЕ

Имейте в виду, что eval можно вызывать только когда вы доверяете коду. Если возможно - вообще не выполнять код, который вводит пользователь.

Пример, как можно использовать eval:

let text = '5 + 7 + 9 * (5-1*2) -1';
console.log(eval(text));

Регулярные выражения необязательны.