感觉用else if也可以

感觉用else if也可以

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>手机号码验证</title>
</head>
<body>
    <script>
    //补充代码
    var phoneNumber=prompt("请输入您的手机号码");
    if (phoneNumber.length!=11) {
        alert("请输入11位手机号码");
    } else if(Number(phoneNumber)!=Number(phoneNumber)) {
        alert("输入的手机号码必须是11位数字");
    } else {
        alert("号码输入正确");
    }
    </script>
</body>
</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
imooc_慕慕 2022-09-26 10:22:35

同学你好,是可以的,此处可以不用考虑太深入,参考优化:

如果为11位,再判断是否为数字。isNaN()方法检测是否为非数字,如果是非数字,返回值为true,如果为数字,返回值为false。可以这样使用

https://img1.sycdn.imooc.com//climg/63310cd0096896b707230297.jpg

祝学习愉快~

子__沐 2022-09-26 00:01:28

这种方式只能验证一次,不能多次验证,且每次执行完毕后,都需要刷新网页重新执行程序。如果使用这种方式验证,那么else if 语句完全可以不用写。反之不是对就是错,完全没必要多此一举。

  • 提问者 ZFB8672236 #1
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>手机号码验证</title>
    </head>
    <body>
        <script>
            function judge() {
                var p=prompt("请输入您的手机号码");
                if (p.length!=11) {
                    alert("请输入11位手机号码");
                    judge();
                } else if(Number(p)!=Number(p)) {
                    alert("输入的手机号码必须是11位数字");
                    judge();
                } else {
                    alert("号码输入正确");
                }
            }
            judge();
        </script>
    </body>
    </html>

    改良了刷新网页问题;

    按提示3,先检查输入是不是11位,是11位才进一步判断数字问题,我觉得是这样的。

    2022-09-26 01:42:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师