使用正则表达式验证手机号码

时间:2013-02-26 11:56:29

标签: regex

我需要验证手机号码。我的需要:

  
      
  1. 该号码可以以+8801或8801或01
  2. 开头   
  3. 下一个数字可以是1或5或6或7或8或9
  4.   
  5. 然后有8位数。
  6.   

如何使用这些条件编写正则表达式?

我试过的手机号码

+8801811419556
01811419556
8801711419556
01611419556
8801511419556

7 个答案:

答案 0 :(得分:23)

应该很简单:

^(?:\+?88)?01[15-9]\d{8}$
  • ^ - 从字符串的开头
  • (?:\+?88)? - 可选的88可能+开始
  • 01 - 强制01
  • [15-9] - “1或5或6或7或8或9”
  • \d{8} - 8位数字
  • $ - 字符串
  • 的结尾

工作示例:http://rubular.com/r/BvnSXDOYF8

答案 1 :(得分:3)

您可以使用给定的正则表达式之一来验证孟加拉国的手机号码。

解决方案1:

/(^(\+88|0088)?(01){1}[56789]{1}(\d){8})$/

Robi,Grameen Phone,Banglalink,Airtel和Teletalk运营商手机不允许。

解决方案2:

 /(^(\+8801|8801|01|008801))[1|5-9]{1}(\d){8}$/

Citycell,Robi,Grameen Phone,Banglalink,Airtel和Teletalk operator mobile no。

允许的手机号码模式

8801812598624

008801812598624

01812598624

01712598624

01919598624

01672598624

01512598624

<强> ................

<强> .................

答案 2 :(得分:1)

如果您想快速访问以下网站,请使用以下正则表达式进行测试

regex pal

[8] * 01 [15-9] \ d {8}

答案 3 :(得分:1)

我知道,很久以前就问过这个问题,但我认为@G。 M. Nazmul Hossain想要再次选择移动电话号码。我告诉你,如何使用免费库libphonenumber from Google来完成它。它可用于Java,C ++和Javascript,但也有PHP的分支,我相信,其他语言。

+880告诉我它是country code for Bangladesh。让我们尝试使用Javascript中的以下代码验证示例数字:

String bdNumberStr = "8801711419556"
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
try {
    //BD is default country code for Bangladesh (used for number without 880 at the begginning)
    PhoneNumber bdNumberProto = phoneUtil.parse(bdNumberStr, "BD");
} catch (NumberParseException e) {
    System.err.println("NumberParseException was thrown: " + e.toString());
}
boolean isValid = phoneUtil.isValidNumber(bdNumberProto); // returns true

该代码也将处理其中带有空格的数字(例如“880 17 11 41 95 56”),或者甚至在beggininng处使用00880(+有时会替换为00)。

demo page上亲自尝试一下。验证所有提供的示例甚至更多。

答案 4 :(得分:0)

在以下位置查看libphonenumber: https://code.google.com/p/libphonenumber/

答案 5 :(得分:0)

  

孟加拉国电话号码( Citycell Robi Grameen Phone Banglalink Airtel Teletalk 运算符)使用正则表达式进行验证:

$pattern = '/(^(\+8801|8801|01|008801))[1-9]{1}(\d){8}$/';
$BangladeshiPhoneNo = "+8801840001417";

if(preg_match($pattern, $BangladeshiPhoneNo)){
    echo "It is a valid Bangladeshi phone number;
}

答案 6 :(得分:0)

**Laravel Bangladeshi Phone No validation for (Citycell, Robi, Grameen Phone, Banglalink, Airtel and Teletalk) and start with +88/88 then 01 then 356789 then 8 digit**  



public function rules()
        {
            return [

                'mobile' => 'sometimes|regex:/^(?:\+?88)?01[35-9]\d{8}$/',

            ];
        }

        public function messages()
        {

                'mobile.regex' => 'Mobile no should be bd standard',
            ];
        }
相关问题