js正则问题

'ahsd123rggj12.34fgb12.345'.match(/(([1-9]\d*)|0)\.\d{1,2}|[1-9][0-9]*/g)

这里为什么是 ["123", "12.34", "12.34", "5"],正则里面不是要匹配 . 点 吗,奇怪 "123" , "5"里面没有点都能匹配到.求高手解答谢谢

阅读 2.3k
3 个回答

/(([1-9]\d*)|0)\.\d{1,2}|[1-9][0-9]*/g

123 , 5 命中的是 [1-9][0-9]*

贪婪原则,最大去匹配,每次匹配成功后继续往后走,遇到合适的就匹配出来。
“|”整数

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题