javascript - 分解 JavaScript 中的数学表达式

标签 javascript regex string

我有一个文本框,其中输入是一个简单的数学表达式,例如 2+323*4.5/52 + 323*4.5/5 (我意味着应该忽略空格)。 整数和 float 都可以作为输入,并且可以接受。我想分解这个表达式的每个元素(操作数和运算符)并将它们保存到一个数组中,以便我可以发送第一个操作数、第一个运算符和第二个操作数(作为参数原子计算)到PHP页面(服务器),然后在得到服务器的响应后,将第二个运算符和第三个操作数与服务器先前的响应一起发送,以便执行另一个原子操作,依此类推。

例如,如果初始字符串为 2 + 323*4.5/5,我的数组(结果)应如下所示:

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

我使用的匹配方法如下:

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

但是我不能使用“+”号,并且结果数组不是我要找的。它将运算符连接到下一个操作数。

PS:我还需要接受/获取负数。

最佳答案

"2 + 323*4.5 / 5".match(/\d*\.\d+|\d+|[/*+-]/g);
// >> ["2", "+", "323", "*", "4.5", "/", "5"]

关于javascript - 分解 JavaScript 中的数学表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14799282/

相关文章:

javascript - Dojo 构建系统 - 使用异步插件和 google map api

regex - 是否可以用单个 s///指定迭代替换过程?

c - 如何在 C 中递归地查找另一个字符串中的字符串位置?

Javascript 将前导零添加到字符串中的所有单位数字中

regex - sed 给出的前面的正则表达式无效

html - 调整大小时避免在两个单词之间换行

javascript - 类似于模态窗口的弹出窗口

JavaScript 评估替代方案

javascript - 如何使用 Parse 访问和查询对象的 ID?

javascript - 检查文本框是否包含无效字符