在下面的程序中,当仅输入空格时,会显示 ex2
异常 value less than 5
,而不是显示 ex4
异常这不是一个有效的数字
,我无法理解其背后的逻辑。
<html>
<head>
<title></title>
<script type="text/javascript">
function promptCheck() {
var val=prompt("Enter a Number between 5 and 10","");
try {
if(val=="") {
throw "ex1";
}
else if(val<5) {
throw "ex2";
}
else if(val>10) {
throw "ex3";
}
else if(isNaN(val)) {
throw "ex4";
}
}
catch(err) {
if(err=="ex1") {
alert("You have not entered any value");
}
if(err=="ex2") {
alert("Value less than 5");
}
if(err=="ex3") {
alert("Value greater than 10");
}
if(err=="ex4") {
alert("This is not a valid number");
}
}
}
</script>
</head>
<body>
<input type="button" value="Bring Mouse on Me!" onmouseover="promptCheck()" />
</body>
</html>
最佳答案
发生这种情况是因为只有空格的字符串被视为空字符串,并且会被转换为 0。
所以
" "*1 // => 0
你需要做的是预先解析值:
var value = parseInt(val, 10); // would be NaN in case of empty string
关于javascript - 捕获 Javascript 代码中的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9241001/