Pradeep Kumar Ответов: 1

Валидатор для строкового выражения, которое позволит использовать такие арифметические выражения, как (), +, -, *, /, min(), max(), avg()


Мне нужна помощь в написании валидатора в javascript или JQuery для строкового выражения, которое позволит арифметические выражения, такие как (),+,-,*,/,min(),max(),avg().
В строке min(),max(),avg() должны разрешаться только два аргумента.
Пример строкового выражения для проверки :
(х+у+макс(мин(х,г),з)+СР(Х,Y)*з/г)

Что я уже пробовал:

Сначала я попробовал синтаксический анализатор и попытался маркировать строки и проверять их по отдельности, но это не сработало. Есть ли какой - нибудь способ сделать это?

Jochen Arndt

Ваш первый подход, использующий (рекурсивный) токенизатор и проверяющий синтаксис, когда токен больше не может быть разбит, - это способ сделать это.

1 Ответов

Рейтинг:
0

OriginalGriff

Нет, для этого нет "простого" метода: как говорит Йохен, вам нужно рекурсивно применить токенизатор, а затем проанализировать синтаксис.

Есть много примеров, когда можно сделать именно это - обычно в качестве первого этапа вычислителя выражений. Гугл найдет вам полно: expression evaluator javascript - поиск в Google[^]