如何将 2 个正则表达式与一个 return 一起使用?

How to use 2 regex with one return?

我用 angular9 写了一个小正则表达式来观察我的路线是否 <website.url>/wiki/<id> :

  isWikiRoute(value?: string): boolean {
    return /^\/wiki(\/|$)/.test(value);
  }

效果很好。 现在,我正在尝试实现相同的功能,但我需要注意这一点:<website.url>/wiki/<id><?edit=1>

 isWikiRouteContribution(value?: string): boolean {
    return /^\/wiki(\/|$)/.test(value)./^\?edit=1(\/|$)/;
  }

但不幸的是,这不起作用。 可以写 2 个正则表达式吗?我需要使用 regexGroup 吗?

编辑(上下文):

正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。

您可以使用这个正则表达式:

/^\/wiki(?:\/[^\/]+\?edit=1|\/)?$/

正则表达式详细信息:

  • ^: 开始
  • \/wiki:匹配/wiki
  • (?::启动非捕获组
    • \/:匹配一个/
    • [^\/]+:匹配1个或多个除/
    • 以外的任意字符
    • \?:匹配一个?
    • edit=1:匹配edit=1
    • |: 或
    • \/:匹配一个/
  • )?:结束非捕获组并且?使整个组可选
  • $:结束

RegEx Demo