Zapier JavaScript和数组

时间:2018-01-25 23:12:37

标签: javascript zapier

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

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

Code on Zapier

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 个答案:

答案 0 :(得分:0)

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 (//...

感谢您收听该视频,听取您的解释,这很有帮助。为了将来参考,如果您包含一个按预期工作的示例输入和一个不能按预期工作的示例输入,则我们将更容易进行故障排除。此外,您在视频中提到的数组内容与此处无关,因为您正在返回一个对象(由{}注明)。如果您有任何其他问题,请告诉我们!