正则手机号码验证(一)

Posted on 2007-06-14 13:56 siwei 阅读(3535) 评论(0)  编辑  收藏 所属分类: JAVASCRIPT

function Checkreg()
{
//验证电话号码手机号码,包含153,159号段
     if (document.form.phone.value=="" && document.form.UserMobile.value==""){
         alert("电话号码和手机号码至少选填一个阿!");
         document.form.phone.focus();
         return false;
         }
     if (document.form.phone.value != ""){
         var phone=document.form.phone.value;
         var p1 = /^(([0\+]\d{2,3}-)?(0\d{2,3})-)?(\d{7,8})(-(\d{3,}))?$/;
         var me = false;
         if (p1.test(phone))me=true;
         if (!me){
             document.form.phone.value='';
             alert('对不起,您输入的电话号码有错误。区号和电话号码之间请用-分割');
             document.form.phone.focus();
             return false;
         }
     }
     if (document.form.UserMobile.value != ""){
         var mobile=document.form.UserMobile.value;
         var reg0 = /^13\d{5,9}$/;
         var reg1 = /^153\d{4,8}$/;
         var reg2 = /^159\d{4,8}$/;
         var reg3 = /^0\d{10,11}$/;
         var my = false;
         if (reg0.test(mobile))my=true;
         if (reg1.test(mobile))my=true;
         if (reg2.test(mobile))my=true;
         if (reg3.test(mobile))my=true;
         if (!my){
             document.form.UserMobile.value='';
             alert('对不起,您输入的手机或小灵通号码有错误。');
             document.form.UserMobile.focus();
             return false;
         }
         return true;
     }
}
说明
test方法检查在字符串中是否存在一个模式,如果存在则返回 true,否则就返回 false。

正则表达式部分:
\d 代表一个数字
{7,8} 代表7-8位数字(表示电话号码)
{3,} 代表分机号码
d{2,3} 代表区号
\+]\d{2,3} 代表国际区号
^13\d{5,9}$/ //130–139。至少5位,最多9位
/^153\d{4,8}$/ //联通153。至少4位,最多8位
/^159\d{4,8}$/ //移动159。至少4位,最多8位 


只有注册用户登录后才能发表评论。


网站导航: