我需要获取用户输入,该输入应该是正整数(整数)。我想出了如果输入不是数字如何继续显示提示,但我不知道如何编写数值的条件。 这是代码。
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-456
和123abc
等值,则会检索到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/