Skip to content
KitploitKITPLOIT
ИнструментыБлог
Log in
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
safe-expr-eval — Безопасный вычислитель выражений — готовая замена expr-eval без уязвимости CVE-2025-12735 | Kitploit
Инструменты/GitHubGitHub/alecasg555/safe-expr-eval
Утилиты общего назначенияАнализ КодаСкриптинг и автоматизация
GitHubalecasg555/safe-expr-eval

safe-expr-eval

Безопасный вычислитель выражений — готовая замена expr-eval без уязвимости CVE-2025-12735

Репозиторий
41114 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

safe-expr-eval

Быстрый и легковесный вычислитель выражений для JavaScript и TypeScript.

Современный парсер выражений с привычным API, без зависимостей и полной поддержкой TypeScript.


Возможности

  • Быстрый разбор и вычисление выражений
  • Легковесный и без зависимостей
  • Полная поддержка TypeScript
  • Простой и знакомый API
  • Пользовательские функции и константы
  • Совместимость с ES2020+
  • Хорошо протестирован

Установка

npm install safe-expr-eval

Быстрый старт

Базовое использование

import { Parser } from 'safe-expr-eval';

const parser = new Parser();
const expr = parser.parse('2 * x + 1');

console.log(expr.evaluate({ x: 3 })); // 7
console.log(expr.evaluate({ x: 10 })); // 21

Прямое вычисление

import { evaluate } from 'safe-expr-eval';

const result = evaluate('10 + 5 * 2');

console.log(result); // 20

Скомпилированные выражения

import { compile } from 'safe-expr-eval';

const fn = compile('price * quantity * (1 - discount)');

console.log(
  fn({
    price: 100,
    quantity: 2,
    discount: 0.1
  })
); // 180

Поддерживаемые операции

Арифметика

+  -  *  /  %

Сравнение

==  !=  >  <  >=  <=

Логические операции

and  or  not
&&   ||   !

Типы данных

Numbers   → 42, 3.14
Strings   → "hello"
Booleans  → true, false
Variables → price, user.name

Пользовательские функции

const parser = new Parser();

parser.functions.max = Math.max;
parser.functions.min = Math.min;
parser.functions.round = Math.round;

const expr = parser.parse(
  'round(max(a, b) * 1.5)'
);

console.log(
  expr.evaluate({
    a: 10,
    b: 20
  })
); // 30

Константы

const parser = new Parser();

parser.consts.PI = Math.PI;
parser.consts.TAX_RATE = 0.15;

const expr = parser.parse(
  'price * (1 + TAX_RATE)'
);

console.log(
  expr.evaluate({
    price: 100
  })
); // 115

API

Parser

Создание парсера

new Parser()

Разбор выражения

parser.parse(expression)

Вычисление выражения

parser.evaluate(expression, variables?)

Реестр функций

parser.functions

Реестр констант

parser.consts

Отдельные функции

evaluate

evaluate(expression, variables?)

compile

compile(expression)

Тестирование

npm test
npm run test:coverage

Лицензия

MIT

Подробности см. в файле LICENSE.


Вклад в проект

Приветствуются pull requests и вклад в проект.


Проблемы

Пожалуйста, создайте issue, если вы нашли ошибку или у вас есть предложение по функциональности.


Автор

Alejandro Castrillon

GitHub: https://github.com/
Скачать инструмент