javascript - 捕获 Javascript 代码中的空格

标签 javascript exception

在下面的程序中,当仅输入空格时,会显示 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/

相关文章:

javascript - TypeORM 时间戳日期相等不起作用

javascript - Node js 显示来自服务器的图像

javascript - jQuery 循环遍历 JSON 数组

javascript - 如何从 JavaScript 剪切、复制和粘贴到用户的剪贴板

java - 当服务中抛出异常时 Spring boot ExceptionHandler

javascript - 使 DiveIntoPython3 在 IE8 中工作(修复 Javascript 性能问题)

ruby - 如何使用消息和回溯手动创建异常

java - Web 服务操作中的变量未更新

python - 正确使用ctypes来调用_Py_Mangle?

python-2.7 - 如果用户关键字在 Robot Framework 2.8.5 中包含持续失败,则不会返回任何值