1-4练习

1-4练习

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

为什么输入11位数字还是显示“输入的手机号码必须是11位数字”

正在回答

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

3回答

第一个if通过的前提下,第二个if你检验的应该是输入的11位是否是非数字。

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>js2</title>
</head>
<body>
 <script>
 var phone=prompt("请输入您的手机号码");
var num=parseInt(phone);
if(phone.length!=11){
   alert("请输入11位手机号码");
}else{
   if(isNaN(phone)){
       alert("输入的手机号码必须是11位数字");
   }else{
       alert("号码输入正确");
   }
}
 </script>
</body>
</html>


  • 西蓝花fa 提问者 #1
    isNaN这个方法我知道 我只是想知道我已经把phone的长度不是11位的排除了,parseInt是提取phone中的数字的,如果phone的11位中有非数字那么应该执行第二个if,如果phone的11位都是数字的话不应该执行第二个if的else吗。 后来想了想length是获取字符串长度的,谢谢啦!
    2017-08-22 13:13:52
宝慕林3319090 2017-09-14 15:41:17

var num=prompt("请输入您的手机号码");
  if(num.length == 11){
   if (parseInt(num).toString().length == 11) {
    alert("号码输入正确");
   } else {
    alert("输入的手机号码必须是11位数字");
   }
  }else{
   alert("请输入11位手机号码");
  }

qq_妮玛_0 2017-08-27 10:21:27

用isNaN判断手机号码是不是数字;

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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