为了账号安全,请及时绑定邮箱和手机立即绑定

正则上的求助

正则上的求助

白衣染霜花 2018-09-04 13:25:54
var str = '1a2b3c4d5e6f',     reg = /\d\w\d/g; console.log(str.match(reg));得到的结果是["1a2", "3c4", "5e6"]一: 为什么这里不包括2b3,4d5?二: 如果我想要2b3,4d5这个怎么解决(我用过exec()也是这么个德行)望各位解答,谢谢
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

我来回答吧,

关于第一个问题,因为在 js 正则表达式中,全局匹配,被匹配过的内容,将不再参与下次匹配,这个由 lastIndex 来控制,MDN 上关于 lastIndex 在这里

额外:另外正则表达式有一个正向预查,预查的内容不参与匹配,只是一个判断规则,你可以具体了解一下。

第二个问题,通过改变 lastIndex 可以实现你的效果,用 exec,不过也只是针对这个正则表达式,如下:

var str = '1a2b3c4d5e6f',  reg = /\d\w\d/g;var a;while(a = reg.exec(str)){
  console.log(a[0])  reg.lastIndex -= 1;
}


查看完整回答
反对 回复 2018-10-24
  • 1 回答
  • 0 关注
  • 444 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信