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);         }; |