【问题标题】:Does omitting non-capturing groups ?: have a negative effect on RegExp.prototype.test()?是否省略非捕获组?:对 RegExp.prototype.test() 有负面影响?
【发布时间】:2023-04-09 05:45:01
【问题描述】:

我目前正在测试一个字符串是否为特定邮件格式。

/^[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)

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

【问题讨论】:

    标签: javascript regex capturing-group


    【解决方案1】:

    仅当您使用反向引用 (\1\2) 时,测试中捕获组和非捕获组之间的切换才有意义。如果您不这样做,则更改无效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-20
      • 1970-01-01
      相关资源
      最近更新 更多