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

时间:2018-06-22 12:23:10

标签: javascript typescript ionic-framework eval

如何强制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:意外令牌*

注意:这里的问题不是*。即使我执行eval(E_LOW%),也会出现

错误
  

SyntaxError:意外令牌

因此,%之后的一切,eval都无法评估/理解。

预先感谢

1 个答案:

答案 0 :(得分:0)

您可以将字符串用于计算,并将符号%替换为/100。然后评估。

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

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