我使用 match 将数学表达式拆分为单独的字符串并将它们保存在数组中。
var STRING = ST.match(/\d*\.\d+|\d+|[()/*+-]/g);
但是这种方法将所有内容分开,包括括号内的负数。例如 (-2+4) 不会给我 -2,而是将 - 保存在 STRING 数组的一个索引中,并将 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 )