Zapier JavaScript 和数组

Posted

技术标签:

【中文标题】Zapier JavaScript 和数组【英文标题】:Zapier JavaScript and Array 【发布时间】:2018-07-05 07:48:31 【问题描述】:

视频解说:http://somup.com/cFVT06Vw8l

我正在运行一个代码步骤,该步骤使用正则表达式在 webhook 包中查找字符串,然后为下一步设置我的输出变量,即 zapier 电子邮件。 问题是,我测试的 3-4 次中只有 1 次有效。历史表明 javascript 工作不正确......它没有错误,全是绿色的,但它不可靠。我错过了什么?

var patt1 = new RegExp("test");
var patt2 = new RegExp("teamPlus+");
var patt3 = new RegExp("tier1");
var patt4 = new RegExp("Luli Cleaning");

if(patt1.test(inputData.client))
    output = name: 'Pravesh', email: 'y123@gmail.com';

else if(patt2.test(inputData.client))

    output = name: 'teamPlus', email: 't123!@gmail.com';

else if(patt3.test(inputData.client))

    output = name: 'Tier1', email: 'l231@gmail.com';  

else if(patt4.test(inputData.client))

    output = name: 'Luli Cleaning', email: 'lu123@gmail.com'; 

【问题讨论】:

【参考方案1】:

David 来自 Zapier 平台团队。

您遇到的问题是,如果测试字符串存在于输入中的任何位置,您当前的方法将匹配。您的第一个输入:

test1234
--
Name 
Phone: (123) 456-7890

[tier1]

匹配“test”并返回Pravesh

您在这里要做的主要事情是使您的正则表达式更加具体。特别是如果您知道您的标签将始终位于 [] 中(并且该模式不会出现在文本中),您可以将其包含在测试中。无论哪种方式,您可能都不需要正则表达式。

if(inputData.client.indexOf('[test]') !== -1)
    output = name: 'Pravesh', email: 'y123@gmail.com';

else if(inputData.client.indexOf('[teamPlus+]') !== -1)

    output = name: 'teamPlus', email: 't123!@gmail.com';

else if (//...

感谢您提供该视频,听您解释它很有帮助。为了将来参考,如果您包含一个按您预期工作的示例输入和一个不按预期工作的示例输入,那么我们的故障排除会更容易。此外,您在视频中提到的数组内容与此处无关,因为您正在返回一个对象(由 指出)。​如果您还有其他问题,请告诉我!

【讨论】:

以上是关于Zapier JavaScript 和数组的主要内容,如果未能解决你的问题,请参考以下文章

Zapier (JavaScript) 的代码中的 getHours() 和 getUTCHours

Zapier中的状态输出到用友的Java代码的代码

Zapier 打开 exe / Zapier 代码打开打开 exe 的 javascript

Javascript:如何组合和过滤数组

Zapier:E164 GB/UK 手机号码解析,可以使用 Python/Javascript 完成吗?

为空时替换一个值(ZAPIER - Javascript)