用正则表达式匹配 URL

Match URL with regex

我在使用正则表达式将以下 URL 与 Cypress intercept() 匹配时遇到问题。我做错了什么?

cy.intercept('GET', /https:\/\/mysite\.me\.com\/pages\/[^\/]+[0-9](?=\/$|$)/, { fixture: 'pages.json' }).as('getPage');

匹配的网址:

不匹配的 URL:

我最终想将正则表达式与 env 变量一起使用,但首先要做的是。

cy.intercept('GET', `${Cypress.env('API_PATH')}/pages/[^\/]+[0-9](?=\/$|$)/`, { fixture: 'pages.json' }).as('getPages');

该正则表达式看起来不必要地复杂,请尝试将其简化为:

/\/pages\/[0-9]+[/]?$/

将同时匹配:

/pages/1234

和:

/pages/1234/

[^\/]

您不需要 \,因为 / 在字符 class 中具有不同的含义。

(?=\/$|$)

好的,所以最后的 / 是可选的。这更具可读性:[/]?,甚至 \/?.

而且我认为您不需要像在模式中提及基数 url 那样明确。