[ad_1]
ユーザーは、テキスト ボックスから数式 (A + B を想定) を追加できます。数式はデータベース テーブルに数式として保存され、後でこの数式に従って他の値を計算し、適切な通貨で結果として計算値を取得できます。変換。
ユーザーが有効な数式を入力した場合は問題ありません。 しかし、ユーザーが無効な入力 (A + * B と仮定) を保存しようとすると、「これは有効な数式などではありません…」というポップアップをユーザーに表示したいと考えています。
では、入力した数式を検証するにはどうすればよいでしょうか?
解決策 1
これに必要なものが含まれているかどうかはわかりませんが、試してみる価値があります。
JavaScript および Node.js 用の広範な数学ライブラリ
Math.js は、JavaScript および Node.js 用の広範な数学ライブラリです。 柔軟な式パーサーを備えており、数値、大数、複素数、単位、および行列を操作するための統合解決策を提供します。 パワフルで使いやすい。
特徴
数値、大数値、分数、複素数、単位、文字列、配列、行列をサポートします。
JavaScript の組み込み Math ライブラリと互換性があります。
柔軟な式パーサーが含まれています。
連鎖操作をサポートします。
組み込み関数と定数の大規模なセットが付属しています。
依存関係はありません。 任意の JavaScript エンジンで実行されます。
簡単に拡張可能です。
オープンソース。
解決策 2
君たちありがとう、
を通り抜けたとき、 Math.js[^].
アイデアが頭に浮かび、このような問題を解決しました。
var isDataValid = false; calculationFormula = calculationFormula.Formula; <pre>calculationFormula = calculationFormula.replace(/[A-Za-z]/g, "1"); //" ----1 " try { var expression = eval(calculationFormula); //" ----2 " if (isNaN(expression)) { addErrorState(formulaTextArea, "Please enter correct formula."); //" ----3 " isDataValid = false; } } catch (e) { //" ----4 " addErrorState(formulaTextArea, "Please enter correct formula."); //" ----3 " isDataValid = false; } //"
1) すべてのアルファベットを数値 1 に置き換えます。
2) jquery eval() で評価する
3) ユーザーにエラーを表示します。
4) 試行が失敗した場合は、エラーをキャッチしてユーザーに表示します
isDataValid = フラグとして使用。
addErrorState() = 特定の formulaTextArea にエラーを表示するために使用するメソッド。
提案してください、これは正しいアプローチですか。
[ad_2]
コメント