Created
April 1, 2021 09:29
-
-
Save Padilo300/a75c7e88c499084bd449705617f141d5 to your computer and use it in GitHub Desktop.
номера телефонов снг
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const ALL_COUNTRIES_FORMAT = '/^\+?([87](?!95[5-79]|99[08]|907|94[^0]|336)([348]\d|9[0-6789]|7[01247])\d{8}|[1246]\d{9,13}|68\d{7}|5[1-46-9]\d{8,12}|55[1-9]\d{9}|55[138]\d{10}|55[1256][14679]9\d{8}|554399\d{7}|500[56]\d{4}|5016\d{6}|5068\d{7}|502[45]\d{7}|5037\d{7}|50[4567]\d{8}|50855\d{4}|509[34]\d{7}|376\d{6}|855\d{8,9}|856\d{10}|85[0-4789]\d{8,10}|8[68]\d{10,11}|8[14]\d{10}|82\d{9,10}|852\d{8}|90\d{10}|96(0[79]|17[0189]|181|13)\d{6}|96[23]\d{9}|964\d{10}|96(5[569]|89)\d{7}|96(65|77)\d{8}|92[023]\d{9}|91[1879]\d{9}|9[34]7\d{8}|959\d{7,9}|989\d{9}|971\d{8,9}|97[02-9]\d{7,11}|99[^4568]\d{7,11}|994\d{9}|9955\d{8}|996[2579]\d{8}|9989\d{8}|380[345679]\d{8}|381\d{9}|38[57]\d{8,9}|375[234]\d{8}|372\d{7,8}|37[0-4]\d{8}|37[6-9]\d{7,11}|30[69]\d{9}|34[679]\d{8}|3459\d{11}|3[12359]\d{8,12}|36\d{9}|38[169]\d{8}|382\d{8,9}|46719\d{10})$/'; | |
const SNG_COUNTRIES_FORMAT = '/^((\+?7|8)(?!95[4-79]|99[08]|907|94[^0]|336)([348]\d|9[0-6789]|7[0247])\d{8}|\+?(99[^4568]\d{7,11}|994\d{9}|9955\d{8}|996[57]\d{8}|9989\d{8}|380[34569]\d{8}|375[234]\d{8}|372\d{7,8}|37[0-4]\d{8}))$/'; | |
unset($argv[0]); | |
$numbers = $argv; | |
foreach ($numbers as $number) { | |
print_r('Номер до обработки: '.$number); | |
$number = purge($number); | |
echo PHP_EOL; | |
print_r('Очищенная строка от символов: '.$number); | |
echo PHP_EOL; | |
print_r('Проверка по паттерну всех стран: '.format(ALL_COUNTRIES_FORMAT, $number)); | |
echo PHP_EOL; | |
print_r('Проверка по паттерну СНГ стран: '.format(SNG_COUNTRIES_FORMAT, $number)); | |
echo PHP_EOL; | |
} | |
/** | |
* Проверит переданный номер и вернёт 0 или 1. | |
* @param string $pattern | |
* @param string|null $phone | |
* @return false|int | |
*/ | |
function format(string $pattern = NULL, string $phone = NULL) { | |
if(is_null($phone) || is_null($pattern)) return FALSE; | |
return preg_match($pattern, $phone); | |
} | |
/** | |
* Очищаем строку от любых символов, кроме чисел. | |
* @param string $number | |
* @return false|string | |
*/ | |
function purge(string $number = NULL) { | |
if(is_null($number)) return FALSE; | |
$number = mb_eregi_replace('[^0-9]', '', $number); // Оставляем только цифры в строке. | |
return $number; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment