【发布时间】:2019-08-16 18:50:39
【问题描述】:
我有一个算术表达式,它可能有多个连续的符号 (1++2-3) 这会在“eval()”函数中产生错误,我只想删除符号的额外重复并保留只有一个
我创建了这个正则表达式:/[+-/*]{2,}/g 问题是它捕获了所有的重复,所以我最终一起删除了这个标志
let eq = '1+++2-2'
let regex = /[+-/*]{2,}/g
【问题讨论】:
-
1+/+2-2或1+-2-2会发生什么?第二个例子是一个有效的 JS 表达式。 -
你要明白的是,所有的算术都是加法。算术中没有减法。所以
2-8真的是2 + -8,其中OPERATOR 总是+,符号总是-或者什么都没有。 -
我正在尝试创建一个简单的计算器应用程序,所以它的行为与普通计算器完全一样,所以如果我按 (1+/-1) 我得到 (1-1),只有最后一个符号被认为是正确的
标签: javascript regex filter