我需要验证手机号码。我的需要:
- 号码可能以 +8801 或 8801 或 01 开头
- 下一个数字可以是 1 或 5 或 6 或 7 或 8 或 9
- 然后有确切的8位数字。
如何使用此条件编写正则表达式?
我试过的手机号码
+8801811419556
01811419556
8801711419556
01611419556
8801511419556
我需要验证手机号码。我的需要:
- 号码可能以 +8801 或 8801 或 01 开头
- 下一个数字可以是 1 或 5 或 6 或 7 或 8 或 9
- 然后有确切的8位数字。
如何使用此条件编写正则表达式?
我试过的手机号码
+8801811419556
01811419556
8801711419556
01611419556
8801511419556
应该很简单:
^(?:\+?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
2020 年更新
由于 BTRC 批准了 2 个新前缀,Grameenphone 为 013,Banglalink 为 014,现在更新了表达式:
^(?:\+?88)?01[13-9]\d{8}$
您可以使用任一给定正则表达式来验证孟加拉手机号码。
解决方案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 运营商手机号码。
允许的手机号码模式
+8801812598624
008801812598624
01812598624
01712598624
01919598624
01672598624
01512598624
......
.....................
我知道,这个问题是很久以前提出的,但我认为@GM Nazmul Hossain 想要验证所选国家的手机号码。我向您展示如何使用Google 提供的免费库 libphonenumber 进行操作。它适用于 Java、C++ 和 Javascript,但也有适用于 PHP 的 fork,我相信还有其他语言。
+880 告诉我这是孟加拉国的国家代码。让我们尝试在 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”),甚至在开头使用 00880(+ 有时会替换为 00)。
在演示页面上自己尝试一下。验证所有提供的示例甚至更多。
在以下位置查看 libphonenumber: https ://code.google.com/p/libphonenumber/
**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',
];
}
使用正则表达式验证孟加拉电话号码(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;
}