【问题标题】:Match URL with regex将 URL 与正则表达式匹配
【发布时间】:2021-10-21 19:55:38
【问题描述】:

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

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

匹配的网址:

不匹配的网址:

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

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

【问题讨论】:

    标签: regex testing cypress


    【解决方案1】:

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

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

    两者都匹配:

    /pages/1234
    

    和:

    /pages/1234/
    

    [^\/]
    

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

    (?=\/$|$)
    

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

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

    【讨论】:

    • '那个正则表达式看起来不必要地复杂',听起来很对。 :) 感谢您的帮助,/\/pages\/[0-9]+[/]?$/ 工作得很好!
    猜你喜欢
    • 2019-03-07
    • 2015-05-30
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    相关资源
    最近更新 更多