如何删除除该字符串之外的特殊字符?

问题描述 投票:0回答:1

我有一个返回一串访问者姓名的表单。返回的字符串如下所示:

[{"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 使用
},{
作为标识符来分割记录。

谢谢!

javascript zapier
1个回答
0
投票

我对 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 所指出的,只需打印上述代码的返回值即可。

© www.soinside.com 2019 - 2024. All rights reserved.