如何在javascript中解析特定查询参数的URL?

时间:2018-08-01 19:23:11

标签: javascript zapier

我将有各种各样的URL,它们都包含相同的查询参数:

https://www.example.com/landing-page/?aid=1234

我想通过在URL中搜索“ aid”查询参数来提取“ 1234”。

JavaScript将在Zapier中运行:

Example javascript block in Zapier

Zapier注意:我们应该通过设置为名为inputData的变量的对象为您的代码(字符串)提供哪些输入数据?

我一般没有太多的JavaScript或编码经验,但是最终结果将是4位数的“ aid”值,当通过Webhook发布到API时,我将引用该值。

编辑:我检查了相似的答案并赞赏了链接,但是我不确定如何在Zapier中使用提供的答案来使用“ inputData”和“ url”。

1 个答案:

答案 0 :(得分:1)

Zapier Platform团队的David在这里。

尽管上面的注释将您引向了正则表达式,但我还是建议您使用一种更为本地化的方法:实际解析网址。 Node.js有一个很棒的标准库可以做到这一点:

// the following line is set up in the zapier UI; uncomment if you want to test locally
// const inputData = {url: 'https://www.example.com/landing-page/?aid=1234'}

const url = require('url')
const querystring = require('querystring')

const urlObj = url.parse(inputData.url) /*
Url {
  protocol: 'https:',
  slashes: true,
  auth: null,
  host: 'www.example.com',
  port: null,
  hostname: 'www.example.com',
  hash: null,
  search: '?aid=1234',
  query: 'aid=1234',
  pathname: '/landing-page/',
  path: '/landing-page/?aid=1234',
  href: 'https://www.example.com/landing-page/?aid=1234' }
*/
const qsObj = querystring.parse(urlObj.query) // { aid: '1234' }

return { aid: qsObj.aid }

根据您对要查找的数据始终存在的信心,您可能需要在此处进行一些备用,但这可以非常可靠地找到要查找的参数。您还可以在此代码步骤后加上Filter,以确保依赖于aid的后面的步骤在丢失时不会运行。

让我知道您是否还有其他问题!