【问题标题】:How to deconstruct a string using Google App Script如何使用 Google App Script 解构字符串
【发布时间】:2022-01-10 23:58:55
【问题描述】:

我在 Google 表格中工作,并将信息从多张表格传递到另一张表格。但是,当用户将他们的代表和体重输入表单(然后将信息发送到 Google 表格)时,它会将所有这些信息放在一个单元格中。

因此,单元格“C2”将收到:

“次数:15,重量:150 代表:12,重量:175 代表:10,重量:200 代表:8,重量:225 代表:6,重量:250"

以单个单元格的形式。

使用 App Script,我如何剖析这个单元格以访问数字,以便我可以将每个单元格放入不同的对应单元格中?

我希望能够将 15 移动到“C4”,将 150 移动到“C5”等等。我不需要任何单词等,只需要保存到单独变量中的数字。

到目前为止我...

var Repsandweight = XPentry.getRange("M2").getValue(); 

var string = Repsandweight.toString(); 

var string2 = string.replace("Reps: ", ""); 

var string3 = string2.indexOf(", Weight: "); 

var Rep1 = string2.slice(0,string3); 

var string4 = string2.replace(Rep1 + ", Weight: ", ""); 

var string5 = string4.indexOf("Reps: ", ""); 

var Weight1 = string4.slice(0,string5); 

它可以工作,但是非常非常慢,并且只迭代我告诉它的次数。基本上,我将单词替换为空,找到下一个单词,在该单词出现之前将其剪掉,将 sn-p 保存为变量。如果列表大小不同,这怎么会是一个停止的循环?

【问题讨论】:

  • 到目前为止你做了什么?
  • var Repsandweight = XPentry.getRange("M2").getValue(); var string = Repsandweight.toString(); var string2 = string.replace("Reps: ", ""); var string3 = string2.indexOf(", 权重:"); var Rep1 = string2.slice(0,string3); var string4 = string2.replace(Rep1 + ", Weight: ", ""); var string5 = string4.indexOf("Reps: ", ""); var Weight1 = string4.slice(0,string5);它可以工作,但是非常非常慢,并且只迭代我告诉它的次数。基本上,我将单词替换为空,找到下一个单词,在该单词出现之前将其剪断,保存 sn-p
  • @NathanGarrett 请在帖子中添加此类内容。它更容易阅读并且与问题直接相关。

标签: javascript arrays string google-apps-script google-sheets


【解决方案1】:

您可以使用正则表达式解析字符串以获得所需的值:

在循环中,您可以将次数和重量作为字符串访问,您可以将其插入到您想要的任何单元格中。

const fullString = "Reps: 15, Weight: 150 Reps: 12, Weight: 175 Reps: 10, Weight: 200 Reps: 8, Weight: 225 Reps: 6, Weight: 250";

const matches = fullString.matchAll(/Reps: (\d+), Weight: (\d+)/g);

for (const match of matches) {
  const [reps, weight] = match.slice(1);
  console.log('Reps:', reps);
  console.log('Weight:', weight);
}

【讨论】:

  • 非常感谢!到目前为止,这非常有效。谢谢!
猜你喜欢
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 1970-01-01
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多