使用 Zapier 代码将全名拆分为名字姓氏
Using Zapier Code to Split a Full Name into First Name Last Name
我们正在使用 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 Code
Error Returned
这是您的代码的 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
}
你有两个选择,只是为了未来的读者,既然答案被接受了。
var arr = inputData.fullName;
if (arr != undefined && arr != null) {
var name = arr.concat(" ").split(' ');
var i = 0;
if (i < 2){
name[i] = name[i];
i++;
}
return {'firstName': name[0], 'lastName': name[1]};
}
else {
return {'firstName': 'N/A', 'lastName': 'N/A'}
}
使用此代码,您可以在以后需要时加上中间名。这还将检查 null
或零值并提供响应(您可以根据需要进行编辑)。
其次,您可以使用 Zapier 的格式操作,运行 文本事件并选择拆分 [:space:]。
我意识到我的第一个 post 在检查空值时出现了拼写错误,导致混淆(感谢 Kevin 的输入)。它肯定不会更快,但无论输入如何,它都不应该在我们的 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 Code Error Returned
这是您的代码的 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
}
你有两个选择,只是为了未来的读者,既然答案被接受了。
var arr = inputData.fullName;
if (arr != undefined && arr != null) {
var name = arr.concat(" ").split(' ');
var i = 0;
if (i < 2){
name[i] = name[i];
i++;
}
return {'firstName': name[0], 'lastName': name[1]};
}
else {
return {'firstName': 'N/A', 'lastName': 'N/A'}
}
使用此代码,您可以在以后需要时加上中间名。这还将检查 null
或零值并提供响应(您可以根据需要进行编辑)。
其次,您可以使用 Zapier 的格式操作,运行 文本事件并选择拆分 [:space:]。
我意识到我的第一个 post 在检查空值时出现了拼写错误,导致混淆(感谢 Kevin 的输入)。它肯定不会更快,但无论输入如何,它都不应该在我们的 zapier 上出错。