正则表达式js

MJlucy 2018-09-16 12:13:53
var str = '2013-6-7' var re=/(\d+)(-)/g str.replace(re,function($0,$1$2){ alert($1)}) 这个为什么只能输出2013,6 7输不出来呢?
...全文
690 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
因为你匹配的是\d+后面跟一个-,7后面没有-,所以只输出两个
MJlucy 2018-09-16
  • 打赏
  • 举报
回复
引用 1 楼 towrabbit的回复:
因为7后面没有 '-' 匹配不上,不信你试试在7后面加个- ,"2013-6-7-"这样 就能匹配到 2013,6,7 要让末尾数字不带-也能匹配的话试试这个:
var re=/(\d+)(-|$)/g
表示数字后面跟-或者是字符串的末尾。这样匹配出来是有最后的数字的
好的,明白了,谢谢哦
towrabbit 2018-09-16
  • 打赏
  • 举报
回复
因为7后面没有 '-' 匹配不上,不信你试试在7后面加个- ,"2013-6-7-"这样 就能匹配到 2013,6,7 要让末尾数字不带-也能匹配的话试试这个:
var re=/(\d+)(-|$)/g
表示数字后面跟-或者是字符串的末尾。这样匹配出来是有最后的数字的

87,921

社区成员

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

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