javascript - 如何计算从字符串到整数的公式

标签 javascript jquery parsing

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

(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/

相关文章:

javascript - 如何制作 AngularJS 指令来更改图像的 src 属性?

javascript - 通过javascript函数更新html图像

javascript - 部署到 heroku 时获取 "Cannot GET/",但没有错误消息?

javascript - 为什么 jQuery 中的粘贴事件会在预粘贴时触发?

jquery - 如何检查本地托管网页的新版本?

python - 我如何用 Python 解析 GeoJSON

C++语言符号分隔符

javascript - CoffeeScript和异步递归函数

javascript - Highstock 图表上的 Llive 数据动态更新(无法读取未定义的属性 'info')错误?

java - 在Android上使用朴素贝叶斯分类