【问题标题】:Checking negative values from Google Forms检查 Google 表单中的负值
【发布时间】:2016-12-21 13:04:36
【问题描述】:

我在这里想要实现的是检查从我的表单提交的值是否符合某些条件,然后发送邮件。当值符合肯定标准时,我会收到邮件(所以邮件部分不是问题。

if(parseInt(e.values[2]) > -15)  
  {  
    mailInnhold +="Fryser 200 er registrert som " + e.values[2] + " grader. " + "\n";
    feil++;

  }


 if(parseInt(e.values[3]) > 4 || parseInt(e.values[3]) < (-1))  // Kjøl 102 //
  {  
    mailInnhold += "Kjøl 102 er registrert som " + e.values[3] + " grader. " + "\n";
    feil++;

  }

当我尝试对负值执行 parseInt() 时,我得到 NaN。显然这是因为我从表单中收到了一个 ndash(而不是连字符),但我无法解决这个问题,而且我在 Google 上也找不到任何相关内容。

非常感谢您的帮助,如果我的问题有任何问题,如果需要(有充分的理由),我会很乐意将其删除。

编辑:我指的问题是:Javascript parseInt on large negative number gives NaN

EDIT2:MVCE 和 Rubén 示例

function emailNotification(e) { 
  Logger.log(e.values[1]); //Where e.values[1] is entered as -1 in the form
  Logger.log(parseInt(e.values[1]));


} 

运行返回:

[16-12-29 12:44:03:822 CET] -1
[16-12-29 12:44:03:823 CET] NaN

【问题讨论】:

  • 如果用户确实在输入该字符,请在代码中检查它并在解析前用破折号替换。
  • @ZigMandel,目前我是唯一一个将数据写入表单的人,而且我一直明确使用“-”而不是“-”,但 Google 表单通过 e 提交。价值观
  • 请添加示例数据输入以及 [mvce]。
  • 我刚刚完成了@ZigMandel 的建议,我检查了所有提交的数据是否有' - '并用' - '替换()它。我仍然很想知道为什么会发生这种情况,因为我只在输入负值时使用' - '。

标签: javascript google-apps-script google-sheets google-forms


【解决方案1】:

我认为“-”可以用来表示负数。正如您在下面的代码中看到的那样,parseInt() 能够将字符串“-2”转换为 int,并且与值 1 相比可以正常工作。所以这不是 Apps 脚本的错。

function myFunction() {
  var str = "-2";
  if(parseInt(str) > 1){
    Logger.log("True");
  }else{  Logger.log("False");} //Output is False.
}

请先在 console.log() 中检查e.values[2] 的值,然后再到达此行

if(parseInt(e.values[2]) > -15)  

【讨论】:

  • –2,而不是 -2。我最终通过 replace() 解决了这个问题,因为我想不出任何其他方法。
  • @DoehringCowart 聪明的想法:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
相关资源
最近更新 更多