我有一个返回一串访问者姓名的表单。返回的字符串如下所示:
[{"First Name":"JAMES","Last Name":"SMITH"},{"First Name":"SARAH","Last Name":"SMITH"}]
我在 Zapier 中使用 JavaScript 从字符串中删除特殊字符:
let INPUT = inputData.INPUT;
let OUTPUT = INPUT.replace(/[^a-z0-9]/gi, '');
output = [{INPUT, OUTPUT}];
但这给了我这个输出: 名字 JAMES 姓氏 SMITH 名字 SARAHL 姓氏 SMITH
我的最终目标是制作这样的东西: 詹姆斯·史密斯 莎拉·史密斯 等等
是否可以删除除字符串
},{
之外的特殊字符?然后我可以使用 zapier 使用 },{
作为标识符来分割记录。
谢谢!
我对 Zapier 不是很熟悉,但假设它具有基本的 JavaScript 功能,我倾向于将字符串转换为对象并从那里开始工作,而不是自己解析它或使用正则表达式。你可以这样做:
let parsedString = JSON.parse('[{"First Name":"JAMES","Last Name":"SMITH"},{"First Name":"SARAH","Last Name":"SMITH"}]')
这将为您提供一个对象而不是字符串。使用起来更加容易,您可以循环遍历它以对每个访问者执行所需的任何操作:
let parsedString = JSON.parse('[{"First Name":"JAMES","Last Name":"SMITH"},{"First Name":"SARAH","Last Name":"SMITH"}]')
parsedString.forEach(a => {
console.log(`${a["First Name"]} ${a["Last Name"]}`)
})
如果您仅需要一串以空格分隔的访客姓名,并且不需要对单个访客执行任何操作,您可以执行以下操作:
JSON.parse(str).flatMap(Object.values).join(' ')
console.log( JSON.parse('[{"First Name":"JAMES","Last Name":"SMITH"},{"First Name":"SARAH","Last Name":"SMITH"}]').flatMap(Object.values).join(' ') )
正如 Unmitigated 所指出的,只需打印上述代码的返回值即可。