我需要根据以下标准验证GPA计算器的用户输入:
到目前为止,我已经尝试了以下几点:
var gradeInputMessage = "Please enter your grade for course " +userInput;
var gradeInput = "";
gradeInput = prompt(gradeInputMessage);
while (
isNaN(gradeInput) || //grade input is a number
gradeInput <3 || gradeInput >7
)
{
alert ("invalid Course Grade. Please try again");
gradeInput = prompt(gradeInputMessage);
}这似乎对数字3,4,5,6,7很好,但我不知道如何包含1.5
请原谅我的无知,这是我必须完成的大学课程,我从来没有做过任何形式的编程,也没有为工作做过任何事情。
感谢任何帮助/反馈。
干杯,米切尔
发布于 2017-04-18 01:39:15
可能更容易检查您想要的东西,然后not它们。
还添加了一个null检查器,这样人们就可以点击cancel退出提示循环。
通过将+放在gradeInput前面,将字符串转换为数字
var gradeInputMessage = "Please enter your grade for course ";
var gradeInput = prompt(gradeInputMessage);
while (
gradeInput !== null &&
(
isNaN(gradeInput) || //grade input is a number
!((+gradeInput >=3 && +gradeInput <=7) || +gradeInput === 1.5)
)
)
{
alert ("invalid Course Grade. Please try again");
gradeInput = prompt(gradeInputMessage);
}
发布于 2017-04-18 01:29:31
你在做网络应用吗?
具有type="number"输入的HTML5可以为您提供有效的数字。
我在这里使用jQuery,但它可以很容易地在纯js中完成。另外,validGpa.indexOf(gpa),这是纯js (.indexOf())
这里的示例使用Array保存所有有效的GPA,如果任何输入匹配,则打印msg xx is valid。如果不匹配,就说'Sorry ...'
var validGpa = ['3', '4', '5', '6', '7', '1.5'];
$('#inputgpa').on('change', function() {
var gpa = $(this).val();
if (validGpa.indexOf(gpa) > -1) {
$('#validation').text(gpa + ' is Valid!');
} else {
$('#validation').text('Sorry! ->' + gpa + '<- is not a valid GPA...');
}
});<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<span>Enter your GPA now:<span><br>
<input id="inputgpa" type="number" /><br>
<span id="validation"></span>
https://stackoverflow.com/questions/43462013
复制相似问题