我需要这个正则表达式的帮助:
let j = numberArray.join("").match(/^([\d]*\.{1,}[\d]+|[\d]+)|([-+*/](?=\.|[\d]))|\.[\d]+|[\d]+/g);
这是我需要匹配的标准:
-
一个数字不能有多个小数 . 例如,仅允许
.123
或1.123
等数字,但不允许...33
或1.2.3.3
. -
一个或多个附加运算符不能跟随运算符 . 因此,用户不能连续输入
+
后跟*
.
一个示例输入和输出:
输入: ..123+*/.4.3.5-+..3+123
会产生输出: .123/.435+.3+123
我实际上认为我有第二个标准(关于运算符)所有设置,但我一直在努力与小数点 . 我是正规表达的新手,我正在努力破解这个,但现在它已经开始让我找到了一段时间 . 任何帮助深表感谢!
1 回答
如果你单独执行这些操作,逻辑可能会更容易 - 首先找到具有多个小数的数字,并修复它们使它们只包含第一个小数位,然后找到重复的运算符,并用最终的运算符替换它们: