我有一个包含公式的表格。公式示例:
(GP1/(GP1 + GP2))*100%。
在我使用 jquery 的代码中,我会将 GP1 替换为 textbox1 值,将 GP2 替换为 textbox2 值并删除 %。
我试图通过这样做得到结果:
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,"");
==> 所以最后的结果将是:
var repl4 = (10/(10+0))*100
我尝试通过这样做将其转换为 int:
var result = parseInt(repl4);
但我得到的结果是NaN。
谁能帮我计算公式
谢谢。
最佳答案
你要找的是:
var result = eval(repl4)
但是要小心,因为 repl4 中的任何 Javascript 都将被评估和执行,即如果有人在您的文本字段中键入恶意 Javascript,它将被执行,除非您对其进行过滤。
将 parseInt()
应用于文本输入的值,但是在您的示例中使用 eval()
是可接受的,因为它将返回一个整数或 NaN
从而防止任何代码注入(inject)(这当然假设公式也不是来自 input
)。
关于javascript - 如何计算从字符串到整数的公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29485980/