用正则表达式匹配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/1
  • https://mysite.me.com/pages/804
  • https://mysite.me.com/pages/134568

匹配的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/

[^/]

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

(?=/$|$)

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

我认为你不需要像在模式中提到基础url那样明确。

最新更新