Мне сложно выполнять математику с помощью скобок, например 7(7+(7 (7+1)))(7)
. Я делаю eval()
по моим операциям. Я решил решить это, чтобы преобразовать это в 7*(7+(7*(7+1)))*(7)
. Я попыталсяКак выполнить математическую операцию из строки с помощью скобок?
/(?!\*\()(\()/g
избежать '*('
на регулярное выражение и принять '('
для замены метод, но я не. Я думаю о вставке *
до (
. Как правильно запустить 7(7+(7 (7+1)))(7)
? Я делаю это для калькулятора.
Пожалуйста обновил свой ответ на фактический код (правильно отступом) и пример вывода или ошибок, которые они получают. – Soviut
Вам действительно нужно вставить '*' в соответствующие места. Вместо того, чтобы использовать 'eval' (что было бы большой проблемой, если вы позволяете людям вводить все, что угодно хотите), рассмотрели ли вы реализацию более ограниченного парсера? Как регулярное выражение, но более подробно. С этим вы можете включить usag e круглых скобок, указывающих на умножение как часть кода синтаксического анализа. Кажется, [jison] (http://zaa.ch/jison/) является хорошим (у него даже есть пример калькулятора). – JAB