省略非捕获组 ?: 对 RegExp.prototype.test() 有负面影响吗?

Does omitting non-capturing groups ?: have a negative effect on RegExp.prototype.test()?

我目前正在测试特定邮件格式的字符串。

/^[A-Za-z0-9](([A-Za-z0-9]|\.(?!\.))*[A-Za-z0-9]+)?@[A-Za-z0-9]+\.[A-Za-z]{2,}$/.test(email)

现在我有一些括号可以像这样标记为非捕获组:

/^[A-Za-z0-9](?:(?:[A-Za-z0-9]|\.(?!\.))*[A-Za-z0-9]+)?@[A-Za-z0-9]+\.[A-Za-z]{2,}$/.test(email)

但我看不出结果有什么不同。测试只是检查,所以它应该是无关紧要的,不是吗?

仅当您使用反向引用 (</code> <code>) 时,在测试中在捕获组和非捕获组之间切换才有意义。正如您不这样做,更改无效。