使 eval() 将 '%' 视为 '/100'

Make eval() consider '%' as '/100'

如何强制 eval() 将 % 替换为 /100? 在我的应用程序中,我将获得需要评估的动态公式。我正在使用 eval() 评估这些公式。当动态公式具有 % 时会出现问题。例如

E_LOW%*CT_TOTAL+(1-GQC)

其中 E_LOW、E_TOTAL、GQC 是常量。

例如。

E_LOW = 10

我希望 E_LOW% 被评估为 0.10,即 E_LOW% = 10/100 = 0.10

目前我收到以下错误:

SyntaxError: Unexpected token *

注意: 这里的问题不是 *。即使我这样做 eval(E_LOW%),我也会收到错误

SyntaxError: Unexpected token )

因此无论 % 之后出现什么,eval 都无法 evaluate/understand。

提前致谢

您可以将字符串与计算一起使用,并将符号 % 替换为 /100。然后评价。

var E_LOW = 10,
    calculation = 'E_LOW%',
    replaced = calculation.replace(/([a-z_]+)%/gi, '(/100)'),
    result = eval(replaced);

console.log(replaced);
console.log(result);