Reputation: 466
I need to validate mobile number. My need:
- The number may start with +8801 or 8801 or 01
- The next number can be 1 or 5 or 6 or 7 or 8 or 9
- 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
Reputation: 97
After trying (^(?:+?88)?01[13-9]\d{8}$), my program shows the correct
8801100001111
- The number may start with +8801 or 8801 or 01.(I want only 8801).
- 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.
- 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
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 stringWorking 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
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
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
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
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
Reputation: 3544
Have a look at libphonenumber at: https://code.google.com/p/libphonenumber/
Upvotes: 0