JavaScript的exec方法匹配问题

exec方法,同样一段代码注释掉之后,显示不同的结果,好奇怪。
图片描述

图片描述

同一个代码,注释掉上下的,结果就不一样?
var myRe=/d(b+)d/g;
console.log(myRe.exec('cdbbdbsdbdbz'));
console.log(myRe.exec('cdbbdbsbbdbz'));
console.log(myRe.exec('cdbbdbsdbdbz'));

阅读 2k
3 个回答
当正则表达式使用 "g" 标志时,可以多次执行 exec 方法来查找同一个字符串中的成功匹配。当你这样做时,查找将从正则表达式的 lastIndex 属性指定的位置开始。

https://developer.mozilla.org...

你两句话是一样的,第一句注释掉了,下面一句就相当于是第一句。。。

题主了解下正则对象的lastIndex属性,

粗浅的说,

每一次返回的结果是从上一次匹配到的下一个位置重新匹配,所以多次使用 exec 返回的结果可能都是不一样的;

强烈谴责题主该贴代码的地方贴截图!

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