带或不带国家代码的手机号码正则表达式

时间:2012-10-12 11:22:40

标签: javascript regex validation

我需要在注册表单中验证我想要一个正则表达式的文本字段。

文本框将接受手机号码,如9999999999(10位数 - 从7或8或9开始)。 用户也可以写+919999999999,其中+91是国家代码(印度为+91,但可以接受任何其他类似+110或+52),或者他也可以写09999999999(自己国家的前0)

在这里,用户有3个选择,

  1. 使用国家/地区代码添加手机号码
  2. 只是没有国家代码或0前缀
  3. 手机号码前缀为零。
  4. 虽然不是必需的,但我的页面是在asp.net中,我正在使用内置的正则表达式验证器。

6 个答案:

答案 0 :(得分:10)

从我所看到的,这应该有效。前缀是可选的,存储在第一个匹配组中,主号码进入第二个组。

^([0|\+[0-9]{1,5})?([7-9][0-9]{9})$

但是如果你能为我们提供一些测试案例,那么它会帮助我们为你提供你想要的正则表达式。

在对国家代码长度的正确限制的评论中向SchlaWiener道具。

答案 1 :(得分:8)

印度移动电话号码验证的简单正则表达式:/^[0]?[789]\d{9}$/

支持 08888888888(零附加) 7878787878,8634456876,9545559877(任何手机号码前面有7,8,9,其后是9位数字)

全功能

function mobileNumber(){

     var Number = document.getElementById('YOUR ELEMENT ID').value;
     var IndNum = /^[0]?[789]\d{9}$/;

     if(IndNum.test(Number)){
        return;
    }

    else{
        $('#errMessage').text('please enter valid mobile number');
        document.getElementById('profile_telephoneNumber').focus();
    }

}

答案 2 :(得分:1)

这应该可以解决问题:

^(\+[\d]{1,5}|0)?[7-9]\d{9}$

http://fiddle.re/av1k

答案 3 :(得分:1)

你也可以使用字符串操作来完成它。请检查此link

str = "+919999999999"
cc = str.split(str.slice(-10))[0]

结果将是+91

答案 4 :(得分:0)

if(document.getElementById('mobile_number').value != ""){

       var y = document.getElementById('mobile_number').value;
       if(isNaN(y)||y.indexOf(" ")!=-1)
       {
          alert("Invalid Mobile No.");
          document.getElementById('mobile_number').focus();
          return false;
       }

       if (y.length>10 || y.length<10)
       {
            alert("Mobile No. should be 10 digit");
            document.getElementById('mobile_number').focus();
            return false;
       }
       if (!(y.charAt(0)=="9" || y.charAt(0)=="8"))
       {
            alert("Mobile No. should start with 9 or 8 ");
            document.getElementById('mobile_number').focus();
            return false
       }
 }

您还可以在更多示例链接中看到 click here

http://p2p.wrox.com/javascript-how/64920-validation-phone-number-mobile-number.html

答案 5 :(得分:0)

尝试以下操作:

function validateMobile(mobilenumber) {   
    var regmm='^([0|+[0-9]{1,5})?([7-9][0-9]{9})$';
    var regmob = new RegExp(regmm);
    if(regmob.test(mobilenumber)){
        return true;
    } else {
        return false;
    }    
}