google-apps-script - Google Apps 脚本 - 条件用户输入 - 数字提示

标签 google-apps-script google-sheets prompt

我需要获取用户输入,该输入应该是正整数(整数)。我想出了如果输入不是数字如何继续显示提示,但我不知道如何编写数值的条件。 这是代码。

var ui = SpreadsheetApp.getUi(); // Same variations.

  do {
  var result = ui.prompt(
      'Please fill in',
      'Please enter number of people involved',
      ui.ButtonSet.OK_CANCEL);
  var text = parseInt(result.getResponseText());
  var button = result.getSelectedButton();
  }
  while (!(button == ui.Button.CANCEL) && isNaN(parseInt(text)) && !(button == ui.Button.CLOSE));

  var button = result.getSelectedButton();
  if (button == ui.Button.OK) {
    ui.alert('Number of people wanted: ' + text + '.');
  } else if (button == ui.Button.CANCEL) {
    ui.alert('Action cancelled.');
    return;
  } else if (button == ui.Button.CLOSE) {
    ui.alert('Action cancelled.');
    return;
  }

我认为,我尝试了 <、>、!、&&、|| 的所有可能组合,但没有任何效果。

最佳答案

  • 仅当值为正整数时才退出 while 循环。

如果我的理解是正确的,那么这个修改怎么样?我认为针对您的情况有几个答案。所以请将此视为其中之一。

修改后的脚本:

从:
while (!(button == ui.Button.CANCEL) && isNaN(parseInt(text)) && !(button == ui.Button.CLOSE));
到:
while (!(button == ui.Button.CANCEL) && !(/^[0-9]+$/.test(text)) && !(button == ui.Button.CLOSE));

引用:

如果我误解了你的问题,请告诉我。我想修改一下。

编辑:

在您当前修改的脚本中,例如输入123-456123abc等值,则会检索到123。这是由于 var text = parseInt(result.getResponseText())

如果您不想这样做,请将 var text = parseInt(result.getResponseText()) 修改为 var text = result.getResponseText()。这样,当输入这些值时,不会退出 while 循环。

关于google-apps-script - Google Apps 脚本 - 条件用户输入 - 数字提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54470293/

相关文章:

javascript - 检查是否有重复值然后弹出一条消息谷歌脚本

json - 谷歌电子表格 : Value parameter can not be parsed

google-apps-script - 如何从 Google Apps 脚本小工具重定向到另一个网页?

arrays - 附加谷歌电子表格数组

google-sheets - 将两个单元格合并为一个新单元格,将所有空格替换为破折号和小写字母

c - 是否有可从命令行获得的 C 库引用?

javascript - 为什么不提示工作?

javascript - 如何使用 REST API google 脚本从 E-goi 加载数据

mysql - 将数据范围从 Google 表格插入到 MySQL

javascript - 一个简单的 JS+HTML 脚本不适合我