用js实现匹配文本中的电话号、固定电话号

思路:javascript

1.用正则取出全部数字串html

  提及来容易,作起来难,开始只是简单的/D+/,后边发现这样作会将固定电话分红两段数字串,后经百度找到解决办法 /[^0-9/-]/ 意思是非数字不包括-做为分割java

2.判断是否为手机号、固定电话号测试

代码:spa

<html>
<head>
    <title>号码</title>
</head>
<body>
    <input id="ss" type="text" ></input>
    <button type="button" onclick="checkTel()">判断</button>
</body>
<script type="text/javascript">
 function checkTel()
 {
    var isPhone = /^0[0-9]{2,3}-?[0-9]{8}$/;//固话
    var isMob=/^(((\+?86)|(\(\+86\)))?([1][3,4,5,7,8][0-9]{9}))$/;//手机
    var val=document.getElementById("ss").value;//获得文本内容 object类型
    var num=val.split(/[^0-9/-/+]/); // 分割取出连续数字
    var s =num.toString();  //转化成字符串  测试数据  我+8617776032602dian02165478932hua158021123456789464269de8615894604269
    var arr=s.split(",");
    var tel=[];
    var sol=[];
    for(var i=0;i<arr.length;i++)
    {
        if(isPhone.test(arr[i]))
        {
            sol+=arr[i]+",";
        }
        else if(isMob.test(arr[i]))
        {
            tel+=arr[i]+",";
        }
        /*else
        {
            alert("没有搜索到电话/固话");
        }*/
    }
    alert("手机号 "+tel+"固定电话号 "+sol);
 }
</script>
</html>