这个题总是写不对

这个题总是写不对

    我都写过好多回了,每次写都不对

<script>

        var tel=prompt("请输入您的手机号码");

        if(tel.length!==11){

            alert('请输入11位手机号码');

            if(isNaN(tel)){

                var tel=prompt=('输入的手机号码必须是11位数字');

            }else{

                alert('请输入您的手机号');

            }

        }else{

            alert('号码输入正确');

        }

    </script>


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

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

1回答
好帮手慕久久 2021-08-26 09:45:34

同学你好,应该是先判断输入的内容是不是11位,如果是11位,才需要继续判断是不是11位的数字:

http://img1.sycdn.imooc.com//climg/6126f22b09eb105d04730395.jpg

代码如下:​

http://img1.sycdn.imooc.com//climg/6126f1be09055ea909660592.jpg

祝学习愉快!

  • 提问者 神知 #1

    老师我这样写有什么不对吗?

        <script>

            var tel=Number(prompt('请输入您的手机号码'));

            if(tel.length==11){

                if(isNaN(tel)){

                    alert('输入的手机号码必须是11位数字');

                }else{

                    alert('号码输入正确');

                }

            }else{

                alert('请输入11位手机号码');

            }

        </script>


    2021-11-01 15:10:02
  • 好帮手慕慕子 回复 提问者 神知 #2

    同学你好,效果不对,输入“13211112222”依旧弹出“请输入11位手机号码”,如下:


    http://img1.sycdn.imooc.com//climg/6094fc450afc2e4712880424.jpg

    原因是length属性是字符串的属性,数字没有length属性,if中的语句会永远不满足,导致效果不对:

    https://img1.sycdn.imooc.com//climg/617f93fd094a62df05950241.jpg

    建议去掉Number方法,这样修改后,代码就正确了。如下:

    https://img1.sycdn.imooc.com//climg/617f947f096d432f07070160.jpg

    补充说明:isNaN方法会尝试将参数转成数值再判断,所以isNaN("123")和isNaN(123)都是false:

    http://img1.sycdn.imooc.com//climg/6094fd78098985fa05660204.jpg

    因此不需要将输入的内容转成数字,isNaN也能正确判断。

    祝学习愉快!

    2021-11-01 15:18:17
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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