G. M. Nazmul Hossain
G. M. Nazmul Hossain

Reputation: 466

Validate Mobile number using regular expression

I need to validate mobile number. My need:

  1. The number may start with +8801 or 8801 or 01
  2. The next number can be 1 or 5 or 6 or 7 or 8 or 9
  3. Then there have exact 8 digit.

How can i write the regular expression using this conditions ?

the mobile numbers I tried

+8801811419556
01811419556
8801711419556
01611419556
8801511419556

Upvotes: 7

Views: 17924

Answers (8)

Abdul Awal Nadim
Abdul Awal Nadim

Reputation: 97

After trying (^(?:+?88)?01[13-9]\d{8}$), my program shows the correct

8801100001111


  1. The number may start with +8801 or 8801 or 01.(I want only 8801).
  2. The next number can be 3 or 4 or 5 or 6 or 7 or 8 or 9 which are valid number in the position for Bangladesh.
  3. Then there have exact 8 digit.

my solution ==> ^8801[3-9]\d{8}$

Regular expression of Bangladeshi phone numbers(what i want) where number of characters=13 , start with 8801, the 5th character can be 3 to 9 not 0, 1, 2, and the other 8 characters can be 0 to 9.

Upvotes: 1

Kobi
Kobi

Reputation: 138137

Should be pretty simple:

^(?:\+?88)?01[15-9]\d{8}$
  • ^ - From start of the string
  • (?:\+?88)? - optional 88, which may begin in +
  • 01 - mandatory 01
  • [15-9] - "1 or 5 or 6 or 7 or 8 or 9"
  • \d{8} - 8 digits
  • $ - end of the string

Working example: http://rubular.com/r/BvnSXDOYF8

Update 2020

As BTRC approved 2 new prefixes, 013 for Grameenphone and 014 for Banglalink, updated expression for now:

^(?:\+?88)?01[13-9]\d{8}$

Upvotes: 32

Jasim Juwel
Jasim Juwel

Reputation: 766

**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',
            ];
        }

Upvotes: 0

Hasib Kamal Chowdhury
Hasib Kamal Chowdhury

Reputation: 2660

Bangladeshi phone number (Citycell, Robi, Grameen Phone, Banglalink, Airtel and Teletalk operators) validation by using regular expression :

$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;
}

Upvotes: 0

Majbah Habib
Majbah Habib

Reputation: 8558

You may use either one of given regular expression to validate Bangladeshi mobile number.

Solution 1:

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

Robi, Grameen Phone, Banglalink, Airtel and Teletalk operator mobile no are allowed.

Solution 2:

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

Citycell, Robi, Grameen Phone, Banglalink, Airtel and Teletalk operator mobile no are allowed.

Allowed mobile number pattern

+8801812598624

008801812598624

01812598624

01712598624

01919598624

01672598624

01512598624

................

.................

Upvotes: 3

Paweł Tomkiel
Paweł Tomkiel

Reputation: 1984

I know, that question was asked long time ago, but i assume that @G. M. Nazmul Hossain want to validate mobile number againt chosen country. I show you, how to do it with free library libphonenumber from Google. It's available for Java, C++ and Javascript, but there're also fork for PHP and, i believe, other languages.

+880 tells me that it's country code for Bangladesh. Let's try to validate example numbers with following code in 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

That code will handle also numbers with spaces in it (for example "880 17 11 41 95 56"), or even with 00880 at the beggininng (+ is sometimes replaced with 00).

Try it out yourself on demo page. Validates all of provided examples and even more.

Upvotes: 1

wwadge
wwadge

Reputation: 3544

Have a look at libphonenumber at: https://code.google.com/p/libphonenumber/

Upvotes: 0

K D
K D

Reputation: 5989

Use the following regular expression and test it if you want on following site quickly

regex pal

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

Upvotes: 1

Related Questions