我所做的是从开头删除+92或0092,并使用以下代码检查它是否是巴基斯坦人的有效手机号码
if(preg_match('/3[0-4][0-9](?:.*)/', $number) == 1) {
//Pakistani mobile number
} else {
// not a pakistani mobile number
}
这种做法是对的吗?
答案 0 :(得分:0)
根据wikipedia: Telephone_numbers_in_Pakistan上的说明,
然后像这样的模式:
^0?3(?:[0-46]\d|55)\d{7}$
或者不考虑运营商5(SCO)的特殊情况:
^0?3[0-6]\d{8}$
或者将国家/地区前缀包含为可选组:
^((?:00|\+)92)?(0?3(?:[0-46]\d|55)\d{7})$
Php Test Snippet:
<?php
$telnumber='03441234567';
if(preg_match('/^((?:00|\+)92)?(0?3(?:[0-46]\d|55)\d{7})$/', $telnumber))
{
echo "matches pattern";
} else
{
echo "doesn't match pattern";
}
答案 1 :(得分:0)
(^\+92[0-9]{10}$)|(^\0092[0-9]{10}$)
此处字符串首先附加+92然后检查下一个10位数字,或者如果数字前面有0092则它包含10位数字。 +92和0092最初检查您的ISD代码而不是其他代码。
答案 2 :(得分:0)
只接受 \d{4} 和 9 位 ^((0)(3))([0-9]{9})$