0

2+323*4.5/5入力がorのような単純な数式であるテキスト ボックスがあります2 + 323*4.5 /5(つまり、空白は無視する必要があります)。整数と浮動小数点の両方が可能であり、入力として受け入れられます。この式のすべての要素 (オペランドと演算子の両方) を分割して配列に保存し、最初のオペランド、最初の演算子、および 2 番目のオペランドを (アトミック計算のパラメーターとして) に送信できるようにします。 PHP ページ (サーバー) にアクセスし、サーバーの応答を取得した後、2 番目の演算子と 3 番目のオペランドをサーバーの以前の応答と共に送信して、別のアトミック操作などを実行します。

たとえば、最初の文字列が の2 + 323*4.5 /5場合、配列 (結果) は次のようになります。

[2、+、323、*、4.5、/、5]。

次のように match メソッドを使用しました。

var expr = document.getElementById("txtExpr").value; 
var tokens = expr.match(/-*\/?[0-9]/g);

しかし、「+」記号は使用できず、結果の配列は探しているものではありません。演算子を次のオペランドに連結します。

PS: 負の数も受け入れる/取得する必要があります。

4

1 に答える 1

2
"2 + 323*4.5 / 5".match(/\d*\.\d+|\d+|[/*+-]/g);
// >> ["2", "+", "323", "*", "4.5", "/", "5"]
于 2013-02-10T15:32:17.290 に答える