首页 > 解决方案 > 使用 Zapier 代码将全名拆分为名字姓氏

问题描述

我们正在使用 webhook 将数据从 Vimeo 提取到 Zapier 并将其发送到我们的 CRM (InfusionSoft)。

我没有编码经验,并且在 Zapier Code 中运行简单的 JS 脚本时遇到问题。目标是将嵌入的客户姓名(名字和姓氏)拆分为两个输出,名字和姓氏。

我从 Zapier 找到并尝试过的代码是这样的:

if ' ' in input['fullName']:
    first, last = input['fullName'].split(' ', 1)
else:
    first, last = input['fullName'], None # fallback
return {
    'firstName': first,
    'lastName': last
}

非常感谢这里的任何帮助!

谢谢,摩根

Zapier 代码 错误返回

标签: zapier

解决方案


这是您的代码的 Javascript 版本。您可以在 else 子句中将 null 更改为您想要的任何值。

let first, last;
if ( input['fullName'].indexOf(" ") != -1 )
    [first, last] = input['fullName'].split(' ', 2);
else
    [first, last] = [input['fullName'], null];
return {
    'firstName': first,
    'lastName': last
}

对于你以后的问题。我认为这是因为您将其用作原始而不是在函数中,因此,我将为您编写一个修复程序。对于 Zapier,他们的文件说你所有的值和变量都以 inputData 开头。因此,要将代码应用到原始代码而不是函数调用中,那么您必须这样做。

if ( inputData.fullName ) {
    let first, last;
    if ( inputData['fullName'].indexOf(" ") != -1 )
        [first, last] = inputData['fullName'].split(' ', 2);
    else
        [first, last] = [inputData['fullName'], null];
    return {
        'firstName': first,
        'lastName': last
    }
} else {
    // inputData.fullName is not available, do something else.
}

如果要在函数调用中使用它,请按照以下步骤操作:

function getFullName(inputData) {
    var first, last;
    if ( inputData['fullName'].indexOf(" ") != -1 )
        [first, last] = inputData['fullName'].split(' ', 2);
    else
        [first, last] = [inputData['fullName'], null];
    return {
        'firstName': first,
        'lastName': last
    }
}

if ( inputData.fullName ) { 
   var someobject = getFullName(inputData);
} else {
   // no inputData.fullName
}

推荐阅读