Написать регулярное выражение
Зафигачить regexp для определения в произвольном тексте номеров сотовых телефонов российских операторов. На выходе не просто получить true или false, а результат который можно записать шаблоном +7-$1-$2-$3-$4. (т.е., например - +7-909-435-90-43) Использоваться будет следующим образом. Пользователь пишет объявление и по ходу пьесы в теле объявления, а не отдельным полем, оставляет свой телефон. Задача - дать ему возможность писать телефон так, как он привык, а регэкспом, тем не менее, привести телефон к шаблонному виду в последующей выдаче.
Немного возможных вариантов записи телефонного номера:
8925-908-45-45
+7-925908-4509
79259084509
925 908 45 09
8 925 9084509
9259084509
7(925)9084509
(925)9084509
8-(925)-9084509
Приятные бонусы - номера российских мобильных операторов всегда начинаются с цифры 9 (903, 925 и т.д.), а цифр в номере мобильного всегда 10 за исключеним код России +7).
Иногда пользователи оставляют в теле объявления номера асек ( а это максимум 9 цифр)
Иногда пользователи пишут свои антропометрические параметры, например: 27 190 45 15
В целом, необходимо охватить максимум случаев, когда регулярное выражение будет отрабатывать корректно, ошибаться оно почти не должно.
Ну, почти, да.
P.S. Использоваться регэксп будет функцией preg_replace в php.