如何将 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 吗?
编辑(上下文):
- 我可以使用 mysite 阅读所有 wiki 内容。com/wiki/
。在此页面中,您可以为 wiki 做出贡献。当我在 mysite.com/wiki/ 上做出贡献时,我在我的路由器上添加了一个 slug,它是 mysite.com/wiki/?edit=1 .当 slug 是 mysite 时,我想更改工具栏上的标题。com/wiki/?edit=1.
正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。
您可以使用这个正则表达式:
/^\/wiki(?:\/[^\/]+\?edit=1|\/)?$/
正则表达式详细信息:
^
: 开始
\/wiki
:匹配/wiki
(?:
:启动非捕获组
\/
:匹配一个/
[^\/]+
:匹配1个或多个除/
以外的任意字符
\?
:匹配一个?
edit=1
:匹配edit=1
|
: 或
\/
:匹配一个/
)?
:结束非捕获组并且?
使整个组可选
$
:结束
我用 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 吗?
编辑(上下文):
- 我可以使用 mysite 阅读所有 wiki 内容。com/wiki/
。在此页面中,您可以为 wiki 做出贡献。当我在 mysite.com/wiki/ 上做出贡献时,我在我的路由器上添加了一个 slug,它是 mysite.com/wiki/ ?edit=1 .当 slug 是 mysite 时,我想更改工具栏上的标题。com/wiki/ ?edit=1.
正在将我的评论转换为答案,以便未来的访问者可以轻松找到解决方案。
您可以使用这个正则表达式:
/^\/wiki(?:\/[^\/]+\?edit=1|\/)?$/
正则表达式详细信息:
^
: 开始\/wiki
:匹配/wiki
(?:
:启动非捕获组\/
:匹配一个/
[^\/]+
:匹配1个或多个除/
以外的任意字符
\?
:匹配一个?
edit=1
:匹配edit=1
|
: 或\/
:匹配一个/
)?
:结束非捕获组并且?
使整个组可选$
:结束