matchを使用して、数式を別々の文字列に分割し、それらを配列に保存します。
var STRING = ST.match(/\d*\.\d+|\d+|[()/*+-]/g);
ただし、このメソッドは、括弧内にある負の数を含むすべてを区切ります。たとえば、(-2 + 4)は-2を与えませんが、代わりに、STRING配列の1つのインデックスに-を保存し、次のインデックスに2を保存します。とにかく一致を使用して、括弧内にある負の数を保存しますか?
これが私が欲しいものです:(-2 + 4):
STRING[0] give me (
STRING[1] give me -2
STRING[2] give me +
STRING[3] give me 4
STRING[4] give me )
負の数がない場合は通常どおりに機能します:(2 + 4):
STRING[0] give me (
STRING[1] give me 2
STRING[2] give me +
STRING[3] give me 4
STRING[4] give me )