javascript - 箭尾测试失败的正则表达式匹配

标签 javascript node.js regex nock

我正在尝试匹配 URL。

lab.before(async () => {
  nock('https://dev.azure.com')
    .get(centosAzureUri)
    .times(5)
    .reply(201, [
    ...

如果我使用字符串,它工作得很好。一个例子如下: const centosAzureUri = `/${conf.org}/${conf.buildProject}/_apis/build/builds?api-version=4.1&branchName=${conf.buildBranch}`

但是,我想使用如下的正则表达式: const centosAzureUri = new RegExp(`/${conf.org}/${conf.buildProject}/_apis/build/builds?api-version=4.1.*`, 'g') 那是行不通的。

根据文档,nock 应该接受正则表达式并且 .* 应该匹配任何符号 [因为 .] 并且允许那些匹配的字符重复任意数量次。因此,我假设这应该接受任何字符串结尾,包括 &branchName=${conf.buildBranch}

我做错了什么?

最佳答案

我认为 nock 仅使用正则表达式文字与将返回新对象的正则表达式对象。例如。

  nock('http://example.com')
       .get(/harry\/[^\/]+$/)
       .query({param1: 'value'})
       .reply(200, "OK");

查看相关 How to build nock regex for dynamic urls

关于javascript - 箭尾测试失败的正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52996086/

相关文章:

javascript - 禁用 Chrome 的 gzip 自动解压

javascript - Firehose 无法承担角色

node.js - DeprecationWarning : 'node --debug' and 'node --debug-brk' are invalid. 请使用 'node --inspect or ' Node --inspect-brk' 代替

php - 加载剥离 javascript 并将其放入数组中供以后使用的替代方法是什么

java - 匹配 ":"之后包含的字符串的正则表达式

javascript - 连接到 Promise 的 .then 方法

javascript - 在 Angular 4 中播放声音

javascript - Winston 记录器将 "undefined"附加到每个日志条目

node.js - 在 NodeJS 中处理服务器端 Google 域身份验证

regex - 来自/proc/cpuinfo的grep信息