javascript中用正则表达式检验手机号

题目:运用正则表达式和Javascript实现当用户在web页面输入手机号后,判断手机号是否是11位数字,而且以1开头,当出现错误时通过警告框提示用户。

刚开始学js,上面是老师留的题目,我写的代码中的警告感觉有点问题,就是在浏览器刚打开,什么都不输入,点击提交之后为什么不弹警告,只有在输入一次数字提交之后再删除,之后再提交才会弹出手机号为空的警告。

求大家解答一下,谢谢!!

下面是我写的代码:

<!DOCTYPE html>


手机号收集

请输入你的手机号

手机号: function checkphone(phone){ if(phone.length==0){ alert("您输入的手机号为空!"); } var myreg=/^[1][0-9]{10}$/; if(!myreg.test(phone)){ alert("手机号错误,请输入正确的手机号!"); } }


代码怎么不全显示,我截图吧!

图片说明

可以试试

<body>
        <h1>请输入你的手机号</h1>
        <form action="" method="get">
            手机号:<input type="text" id="int" />
            <input type="submit" value="提交" onclick="abc()" />
        </form>
        <script type="text/javascript">

            function abc(){
                var reg=/^\d{4,4}?([-]?((\d)|[ ]){0,7})$/;
                var str=document.getElementById("int").value;
                if(str==""){
                    alert("请输入手机号");
                }else if(!reg.test(str)){
                    alert("你输入的手机号有误,请重新输入");
                }else{
                    alert("您的手机号正确");
                }
            }
        </script>
    </body>

https://www.cnblogs.com/hugeboke/p/12522939.html