使 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);
如何强制 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);