Module: @nginstack/web-framework/lib/expression/Expression

Members


<inner, constant> regexCompleteExpression :string

Regex para avaliar a expressão completa.

Type:
  • string

<inner, constant> regexToExtractVariables :string

Expressão para extrair variáveis entre colchetes. Grupo 1 = [ Grupo 2 = Regex de uma variável Grupo 3 = ]

Type:
  • string

Methods


<inner> Expression(expression, expression)

Implementação simplificada de um avaliador de expressões matemáticas que suporta receber variáveis para avaliação dinâmica. As variáveis devem ser declaradas na expressão dentro de colchetes, na forma [variable].

Este método cria uma nova instância da classe Expression e garante que a e expressão passada é válida sintaticamente e semanticamente de acordo com as seguintes regras:

  1. Conter somente números, "(", ")", "+", "-", "*" ou "/".
  2. Se contiver caracteres, devem estar entre colchetes "[]".
  3. Não podem haver parênteses entre colchetes.
Parameters:
Name Type Description
expression string

Expressão matemática a ser avaliada. Parâmetros podem ser utilizados e devem ser expressos entre colchetes ([parameter]). Quaisquer outras funções contidas na expressão não serão aceitas.

expression string

Expressão a ser verificada

Throws:
  • Error Expressão vazia ou null

  • Error Expressão sintaticamente incorreta (não há match com regex)

  • Error Expressão semanticamente inválida (substituição de variáveis pelo valor '1' resultou em erro.

Returns:

Instância de Expression a ser utilizada

Type
Expression
Example
var Expression = require('@nginstack/web-framework/lib/expression/Expression');
var expr = new Expression('10*(300+[REC.Recurso])');
var params = {
 'REC.Recurso': 100
};
var valor = expr.evaluate(params);
// Valor deve ser 4000.