如何计算从string到int的公式

eik*_*kaz 12 javascript jquery parsing

我有一个包含公式的表.公式示例:

(GP1 /(GP1 + GP2))*100%.

在我使用jquery的代码中,我将使用textbox1值替换GP1,使用textbox2值替换GP2并删除%.

我试着通过这样做得到结果:

var repl1 = (GP1/(GP1 + GP2))*100%;
var repl2 = repl1.replace(/GP1/gi,parseInt($("#txtbox1").val()));
var repl3 = repl2.replace(/GP2/gi,parseInt($("#txtbox2").val()));
var repl4 = repl3.replace(/%/gi,"");
Run Code Online (Sandbox Code Playgroud)

==>所以最后的结果是:

 var repl4 = (10/(10+0))*100
Run Code Online (Sandbox Code Playgroud)

我尝试通过这样做将它转换为int:

var result = parseInt(repl4);
Run Code Online (Sandbox Code Playgroud)

但我得到的结果是NaN.

任何人都可以帮助我如何计算公式

谢谢.

SGD*_*SGD 7

你在寻找的是:

var result = eval(repl4)
Run Code Online (Sandbox Code Playgroud)

但要小心,因为repl4中的任何Javascript都将被评估和执行,即如果有人在您的文本字段中键入恶意Javascript,它将被执行,除非您对其进行过滤.

施加parseInt()到文本输入的值但是,应使用eval()在你的例子上可接受的,因为这将返回一个整数或NaN从而防止任何代码注入(假定当然该公式不是从未来的input为好).

  • 从来没有,*从不*,`eval()`文本字段,正是因为这里所说的原因. (4认同)
  • repl4不rep14;) (2认同)