【问题标题】:Zapier JavaScript and ArrayZapier JavaScript 和数组
【发布时间】: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'}; 
}

【问题讨论】:

    标签: javascript zapier


    【解决方案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 (//...
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-14
      • 2017-08-26
      • 2023-03-27
      • 2017-08-10
      • 2020-12-21
      • 2020-10-11
      • 2021-05-03
      相关资源
      最近更新 更多