编程练习:根据效果图写出代码,判断用户输入的手机号是否是11位的数字,如果不是11位的纯数字,提示用户输入错误,是的话提示输入正确

编程练习:根据效果图写出代码,判断用户输入的手机号是否是11位的数字,如果不是11位的纯数字,提示用户输入错误,是的话提示输入正确

想问下怎么判断用户输入的是否是纯数字,一下我写的代码貌似满足不了练习的要求

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>手机号码验证</title>

</head>

<body>

    <script>

//补充代码

var tel = prompt('请输入手机号');

if(tel.length !== 11) {

    alert('手机号为11位')

}else if(typeof(Number(tel)) !== 'number') {

    alert('手机号为纯数字');

}

</script>

</body>

</html>


正在回答

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

1回答

同学你好,可以直接使用Number()方法来判断,用户输入的内容是否是纯数字。

因为Number()方法可以将其他类型的数据强制转换为number类型,如果无法转换的话,则转换为NaN,如图

http://img1.sycdn.imooc.com//climg/60ffd1c3098e23e807320160.jpg

而NaN在if判断语句中会默认返回false,所以建议将判断条件修改为:!Number(tel),参考如下

http://img1.sycdn.imooc.com//climg/60ffd3e90970a96f07240432.jpg

祝学习愉快!

  • 微微Vivian哦耶 提问者 #1

    那为啥不能用typeof(Number(tel)) !== 'number'来判断是不是数字类型呢

    2021-07-27 17:50:13
  • 同学你好,因为Number()方法在将其他类型的数据强制转换为number类型时,如果无法转换的话,则会转换为NaN,而NaN也是number类型,所以typeof(Number(tel))的返回结果会一直都是number,如图http://img1.sycdn.imooc.com//climg/60ffdbc6093a489208040245.jpg

    因此,typeof(Number(tel)) !== 'number'不能用来判断是不是数字类型。

    祝学习愉快!

    2021-07-27 18:20:09
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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