Google Apps 脚本 - 来自 Google 表单 / Sheet 的神秘逗号值

Google Apps Script - Mysterious comma on value from Google Form / Sheet

这是我的场景:

我有一个 Google 表单,并将值添加到电子表格中。我有一个以 function onFormSubmit(event)

开头的 Apps 脚本

我使用 var Variable = event.namedValues["Question 1"]; 从表单中获取值 我将此变量的值与一些“if 语句”一起使用。

此 Apps 脚本 运行 OK,但我仍在进行更改以添加新功能(在表单上添加更多问题,在脚本上添加新功能),但突然在其中一个变量中开始在该变量的值中出现逗号。

检查完所有脚本后,我决定将所有脚本复制到一个新脚本中。当我使用这个新场景(文件内容相同)时,神秘的逗号消失了。我继续进行新的开发,但经过一些新的更改(较新的更改)后,逗号开始出现在其值中的一个变量上。在进行一些新的更改后,逗号从在值的开头添加,开始出现在末尾。

我检查了电子表格上的值,它们没有逗号,只有当我在脚本中使用该变量的值时才会出现逗号。 在我保存事件的值后,我用 Logger.log(Variable) 打印值,逗号就在那里,所以我认为我的代码没有添加这个逗号。

知道为什么会这样吗?有没有办法检查脚本中变量字符(在本例中为逗号)的值?像 Replace(Variable,",","") 这样的东西,我可以在开始在脚本中使用它们之前检查从事件中获得的所有值。逗号不用于变量的值。

这些是受影响的行(脚本有 500 多行):

function onFormSubmit(event){
  var Variable = event.namedValues["Question 1"];
  Logger.log("Value after event" + Variable);
    
  if (Variable == "AAAA"){
    // do "something";
  }
  else {
    // do "something different"
  }
}
    
As the comma appears the if statement never gets a TRUE because the value starts to be "AAAA," so the do "something" never happens.

答案:

  1. 知道为什么会这样吗?

    • 可能有一些拼写错误需要清理。如果您也可以提供您的代码或至少您是如何编写的,那就更好了。
  2. 有没有办法检查脚本中变量字符(在本例中为逗号)的值?

    • 您可以使用 includes.
    • 检查变量中是否存在 character/string
var string = "I am Iron man,";
var hasComma = string.includes(","); // True

如果要替换所有逗号实例,请使用 replace

// Replace all commas with blank
var string = string.replace(",", ""); // "I am Iron man" 

编辑:

因为e.namedValues["Question 1"]returns一个对象,需要把变量改成string然后用replace函数

代码:

var Variable = e.namedValues["Question 1"];
Variable = String(Variable).replace(",", "");
  
Logger.log("Value after event: " + Variable);

if (Variable == "AAAA"){
  // do "something";
}
else {
  // do "something different";
}

参考文献: