2011-12-29 7 views
0

私は単純な関数のグラフを作成しようとしていますy=k*x+b
ユーザは、例えば、入力フィールドに関数を入力する:HTML入力フォームの内容を計算に渡す

1月3日* X + 3

、彼/彼女は、送信ボタンをクリックすると、JavaScript関数をすることになっています(x変数は、その限界を有しているので、私は、ここで特定のyの値を取得する必要がある)実際の計算手順としてこの入力値を取得し、それに変数を割り当てる:

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

上記のコードは動作しません。理由は分かりません - 私はこれで初心者です。しかし、これは本当に見た目よりも難しいですか、何かを逃していますか?私はこれについて正規表現を試してみることを検討していましたが、頭を悩ますと、頭が痛いです。

アイデア?

あなたは evalことができ

答えて

2

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

このアプローチにはいくつかの制限は明らかにあります。ユーザーは、有効なJavaScript式

  • を入力する必要があります

    • は、ユーザーが変数名としてxを使用する必要があります。これはループ内で使用されているためです
    • コードは脆弱です。彼が好きなjavascriptの表現を実行する

    もっと堅牢なソリューションのためには、mathematical expression evaluatorのjavascriptを使用することを検討してください。

  • +0

    あなたの答えをありがとう。このグラフはオフラインでのみ使用されるため、セキュリティは問題ではないと私は考えています。さらに、ここにはSQLデータベースがないため、SQLインジェクションのリスクもなくなっています。そして、はい、ポップアップボックス(ツールチップ)を追加して、構文についてユーザーに知らせます。フォームをフィルタリングして検証する必要がありますか? 何がうまくいかない可能性がありますか?つまり、ユーザーはどのようなコードを実行できますか?グラフが1つにアップロードされると、サーバーにダメージを与える可能性がありますか? – Onion

    +0

    リンクをありがとうございましたが、教育目的のために、このjavascriptコードの開発を自分で練習したいと思います。 – Onion

    関連する問題