用正则表达式匹配 URL
Match URL with regex
我在使用正则表达式将以下 URL 与 Cypress intercept() 匹配时遇到问题。我做错了什么?
cy.intercept('GET', /https:\/\/mysite\.me\.com\/pages\/[^\/]+[0-9](?=\/$|$)/, { fixture: 'pages.json' }).as('getPage');
匹配的网址:
不匹配的 URL:
- https://mysite.me.com/pages/?something=something
- https://mysite.me.com/pages/1234/something
- https://mysite.me.com/pages/something
我最终想将正则表达式与 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 那样明确。
我在使用正则表达式将以下 URL 与 Cypress intercept() 匹配时遇到问题。我做错了什么?
cy.intercept('GET', /https:\/\/mysite\.me\.com\/pages\/[^\/]+[0-9](?=\/$|$)/, { fixture: 'pages.json' }).as('getPage');
匹配的网址:
不匹配的 URL:
- https://mysite.me.com/pages/?something=something
- https://mysite.me.com/pages/1234/something
- https://mysite.me.com/pages/something
我最终想将正则表达式与 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 那样明确。