2011-12-29 46 views
0

我想绘制一个简单函数y=k*x+b的图形。
用户输入的功能到输入字段,例如:传递HTML输入表单内容进行计算

三分之一* X + 3

和当他/她点击提交按钮,JavaScript函数应该借此输入值作为实际的计算顺序和变量分配给它(I只需要在这里得到一定的y值,所以x变量有其限度):

for (x=1;x<=40;x++) 
{ 
    result = window.document.menu.inputFunction.value; 
} 

上面的代码不工作。难怪为什么 - 我只是这个初学者。但是,这是真的比看起来更难,还是我错过了什么?我考虑过在某个时候为此尝试正则表达式,但是即使考虑使用它们,我的头也会受伤。

任何想法?

回答

2

你可以eval它:

result = eval(window.document.menu.inputFunction.value); 

有明显这种方法有一些限制:

  • 用户必须输入一个有效的JavaScript表达
  • 用户必须使用x变量名因为这就是你正在循环中使用的
  • 该代码是易受攻击的,因为用户可以输入nd执行任何他喜欢的javascript表达式

对于更强大的解决方案,您可以考虑使用javascript mathematical expression evaluator

+0

感谢您的回答。这张图只能离线使用,所以我不认为安全问题。另外,这里没有SQL数据库,所以SQL注入的风险也没有了。是的,我将添加弹出框(工具提示)以通知用户有关语法。我应该过滤并验证表单吗? 什么可能出错?我的意思是,用户可以执行哪些代码?如果图形上传到服务器,是否会损坏服务器? – Onion 2011-12-29 08:37:46

+0

感谢您的链接,但为了教育目的,我想自己练习此JavaScript代码的开发。 – Onion 2011-12-29 08:43:53