求解正则表达式/(.)\1+/g和/.+/g的区别?为什么?

JS_weifeng 2017-02-23 05:38:32
求解正则表达式/(.)\1+/g和/.+/g的区别?为什么?
例如:
var str='aaadcccdddd'
var re=/(.)\1+/g
alert(str.replace(re,'$1'))
这个输出adcd
...全文
524 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
燕云长风 2017-02-24
  • 打赏
  • 举报
回复
括号里面的代表分组,\1表示获得和第一个分组里完全相同的内容。
JS_weifeng 2017-02-23
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
捕获组 且重复 第二个没有
什么是捕获组啊?这不太懂
似梦飞花 2017-02-23
  • 打赏
  • 举报
回复
捕获组 且重复 第二个没有
functionsub 2017-02-23
  • 打赏
  • 举报
回复
/(.)\1+/g // 这个匹配任意连续的字符,并把第一个获取出来存放到集合里,所以在下面replace的时候$1就是每个连续字符的第一个
/.+/g // 这个匹配任意字符,这个如果replace的话,由于没有用()包起来,没有匹配到副本,$1会当成普通字符串,最后alert出来的就是$1

87,990

社区成员

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

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