@Muvka

Хорошо ли будет вычленять и форматировать номер телефона такой код?

Нужно, чтобы в итоге был номер в таком формате +7 (999) 999 99-99. Вообще, в поле ввода стоит маска, но на старых телефонах, люди умудряются с 8 начинать номер. И раз там с 8 могут начать, значит могут и скобки и тире ставить.
preg_match("/([0-9]{1})[^0-9]*([0-9]{3})[^0-9]*([0-9]{3})[^0-9]*([0-9]{2})[^0-9]*([0-9]{2})/", '+7932-325-(21)56', $result);
$phone_number = '+7 ('.$result[2].') '.$result[3].' '.$result[4].'-'.$result[5];
var_export($phone_number);
  • Вопрос задан
  • 104 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Не надо ничего такими регулярками вычленять.
Убрали всё кроме цифр, по длине проверили и собрали строку.
При необходимости заменили 8 на 7.

$phone = preg_replace('/\D/', '', $phone);
$arr = str_split($phone);
$arr[0] = 7;

// вывели как угодно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
'#\+7 \(\d{3}\) \d{3}-\d{2}-\d{2}#'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы