PHP: нормализация номера телефона
Задача: на входе строка, которая может содержать номер, или номер + какие то комментарии к нему. Необходимо нормализовать номер, что бы были только цифры.
Решение:
Сначала напишем функцию проверки наличия букв в строке:
1 2 3 4 5 6 7 |
function LeetterYet($mobile){ $yet=false; if (preg_match('/[а-яё]/iu', $mobile)) {$yet=true;}; // символ ё, отдельно проверяем if (preg_match('/[a-zA-Z]/', $mobile)) {$yet=true;}; // английский алфавит if (preg_match('/[^a-zA-Z\d]/', $mobile)) {$yet=true;}; // специальные символы return $yet; } |
Далее, если есть буквы, то удалим их, и ограничим длинну поля 11 символами..
1 2 3 4 5 |
function NormalizeMobile($mobile){ $mobile=preg_replace('/[^0-9]/', '', $mobile); $mobile = substr($mobile, 0,11); return $mobile; }; |
И общий результат:
1 2 3 4 |
$mobile=$res->result->mobile; if (LeetterYet($mobile)==false){ $mobile= NormalizeMobile($mobile); }; |