google-apps-script - Google Apps 脚本 - 有条件的用户输入 - 数字提示
问题描述
我需要获取应该是正整数(整数)的用户输入。如果输入不是数字,我想出了如何继续显示提示,但我不知道如何为数字值编写条件。这是代码。
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 循环。
推荐阅读
- javascript - 如何以与在 Javascript 中相同的方式在 Typescript 中访问“this”?
- javascript - Javascript 表单动作更改事件
- java - 如何在 android 中创建类似于附件的可折叠编辑文本区域
- reactjs - React Js 错误“当我安装 react js 时,它会显示一个错误”
- laravel - 无法在 vue cli 项目中使用 laravel-echo
- python - 在 matplotlib 中绘制对数正态比例
- javascript - 如果在内部单击,OnBlur 关闭反应组件
- cordova - Xcode 12 和 iOS 14 出现奇怪问题,Coresimulator 错误等
- mongodb - Mongodb 和 AWS EC2 安全问题
- sql - SQL查询的中间表