2011-12-29 51 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