求正则帝指点取出负数与减号的正则表达式

SuperMstsc 2015-10-15 02:38:01
比如一个字符串 "(5+(3-2)*-3) / 2"
需求是依次取出所有元素,期望的值是:
( , 5 , + , ( , 3 , - , 2 , ) , * , -3 , ) , / , 2
没有负数时使用 \(|\)|\+|-|\*|/|\d+ 能正确提取元素,但是一但有负数就不行了,-3会分别提取成 - 和 3。
并且我的环境下不支持(?<=) 和 (?<!) 反向预查……所以(?<=\d)- 来提取减号的希望没了,实在找不到办法了,求救!!!
...全文
478 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2015-10-15
  • 打赏
  • 举报
回复

var str = "(5+(3-2)*-3)/2";
var arr = str.replace(/((^|[^\d\)])-\d+)/g,"$1@").match(/\(|\)|\+|-(\d+(?=@))?|\*|\/|\d+/g);
alert(arr);

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧