如何使用isNaN来检查输入是否是数字?
我想在我的代码中限制符号,负数和所有其他非相对的东西。我的教授告诉我使用isNaN,但我不知道如何在我的代码中应用。有人可以帮我解决这个问题吗?我重视我的代码如下
如何使用isNaN来检查输入是否是数字?
<!-- Network Latency Calculator -->
<html>
<head>
<meta charset = "utf-8">
<title>Network Latency Calculation</title>
<script>
var firstNumber; // first string entered by user
var secondNumber; // second string entered by user
var thirdNumber; // third string entered by user
var fourthNumber; // fourth string entered by user
var number1; // first number to add
var number2; // second number to add
var number3; // third number to add
var number4; // fourth number to add
var sum; // sum of number1 and number2 and number3 and number4
var sumresult;
// read in first number from user as a string
firstNumber = window.prompt("Enter the Propagation time (no negative number, letter, blank space, and symbol is not allow)");
// read in second number from user as a string
secondNumber = window.prompt("Enter the Transmission time (no negative number, letter, blank space, and symbol is not allow)");
// read in third number from user as a string
thirdNumber = window.prompt("Enter the Queuing time (no negative number, letter, blank space, and symbol is not allow)");
// read in fourth number from user as a string
fourthNumber = window.prompt("Enter the Propagation delay (no negative number, letter, blank space, and symbol is not allow)");
// convert numbers from strings to integers
number1 = parseFloat(firstNumber);
number2 = parseFloat(secondNumber);
number3 = parseFloat(thirdNumber);
number4 = parseFloat(fourthNumber);
sum = number1 + number2 + number3 + number4; // add the numbers
sumresult = parseFloat(sum);
// display the results
document.writeln("<h1>The network latency is " + sum + "</h1>");
document.writeln("<p>Propagation time " + number1 + "</p>");
document.writeln("<p>Transmission time " + number2 + "</p>");
document.writeln("<p>Queuing time " + number3 + "</p>");
document.writeln("<p>Propagation delay " + number4 + "</p>");
if (sumresult < 1)
document.writeln("<p>Network performance is good.</p>");
else (document.writeln("<p>Warning: Network performance needs improvement.</p>"));
</script>
</head><body></body>
在生产Web应用程序,你就不会提示输入数字用户 - 你会显示一个表单供用户填写。
但是,因为我们正在与玩具应用程序时,你可以简单地重复提示,直到用户得到它的权利:
function getNumberFromUser(promptText) {
var n = NaN;
while(isNaN(n) || (n < 0)) {
var nString = window.prompt(promptText);
n = parseFloat(nString);
}
return n;
}
var number1 = getNumberFromUser("Enter the Propagation time (no negative number, letter, blank space, and symbol is not allow)");
var number2 = getNumberFromUser("Enter the Transmission time (no negative number, letter, blank space, and symbol is not allow)");
//etc
我还没有测试过这个,但是如果他们输入任何正数,那么是不是你的while语句要重复? – jas7457
@ jas7457 - Doh!它应该是' ='。我会解决它。 –
我应该在promt之前添加代码吗?因为webstie不运行。 –
'isNaN(其他)'为真,如果'whatever'不一个数字 - 注意:即使'1.23“是一个字符串,isNaN(”1.23“)将是假的 - 所以如果你想像这样使用它们,你仍然需要将值解析/强制为'Number' –