Проверка формы ввода телефона

Эсминец
На сайте с 15.02.2012
Offline
105
3225

Пишу форму обратной связи, в принципе всё уже готово. Теперь вот захотелось сделать проверку правильности ввода номера телефона. Как это можно реализовать? Какие есть варианты?

Тексты от 100 р за 1000 знаков, опыт работы - более 7 лет. Skype: slava_zotov (skype:slava_zotov?add), Telegram @zotov_va (https://t.me/zotov_va) Хостинг с бесплатными SSL-сертификатами, 30 дней бесплатно (https://clck.ru/Dhqrp)
ukrdev
На сайте с 15.11.2011
Offline
31
#1

Регулярное выражение

C
На сайте с 04.02.2005
Offline
277
#2

ага и под все возможные виды

0 (000) 0000000

0 (000) 00-00-000

0 (000) 000-00-00

и тд. вариантов масса

Улыбныло вот такое

$re = '/^\+(1|20|210|211|212|213|214|215|216|217|218|219|220|221|222|223|224|225|226|227|228|229|230|231|232|233|234|235|236|237|238|239|240|241|242|243|244|245|246|247|248|249|250|251|252|253|254|255|256|257|258|259|260|261|262|263|264|265|266|267|268|269|27|28|290|291|292|293|294|295|296|297|298|299|30|31|32|33|34|350|351|352|353|354|355|356|357|358|359|36|370|371|372|373|374|375|376|377|378|379|380|381|382|383|384|385|386|387|388|389|39|40|41|420|421|422|423|424|425|426|427|428|429|43|44|45|46|47|48|49|500|501|502|503|504|505|506|507|508|509|51|52|53|54|55|56|57|58|590|591|592|593|594|595|596|597|598|599|60|61|62|63|64|65|66|670|671|672|673|674|675|676|677|678|679|680|681|682|683|684|685|686|687|688|689|690|691|692|693|694|695|696|697|698|699|7|800|801|802|803|804|805|806|807|808|809|81|82|83|84|850|851|852|853|854|855|856|857|858|859|86|870|871|872|873|874|875|876|877|878|879|880|881|882|883|884|885|886|887|888|889|89|90|91|92|93|94|95|960|961|962|963|964|965|966|967|968|969|970|971|972|973|974|975|976|977|978|979|98|990|991|992|993|994|995|996|997|998|999)\s*(?:(?:\(\s*(?:(?:(\d{1})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{2})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{3})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{4})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{5})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{6})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{7})\s*\)\s*(\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))|(?:(\d{8})\s*\)\s*(\d(?:\s*-?\s*)\d))))|((?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d(?:\s*-?\s*)\d))$/'; 

Проще всего проверить на цифры, минус, пробел, скобки

Затем убрать нецифровые символы, проверить на длину (это если надо...)

[Удален]
#3

проверить на цифры и длинну - самое логичное

минус, пробел и скобки - так себе... особенно минус

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#4

А зачем? Если человек хочет чтобы ему ответили по телефону сам напишет нормально.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Эсминец
На сайте с 15.02.2012
Offline
105
#5
LEOnidUKG:
Если человек хочет чтобы ему ответили по телефону сам напишет нормально

а если ошибётся?

LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6
Эсминец:
а если ошибётся?

Он в любом случаи может ошибиться в последовательности цифр, вот это проблема и её регуляркой не поправить. В остальном чего он ошибётся?

Сделайте на крайний случай пример:

+7 (ххх) хххххххх

Чтобы могли люди вводить в нужном формате.

[Удален]
#7
LEOnidUKG:
А зачем?

Проверка телефона - вполне даже нехилая защита от спама... ))

eis
На сайте с 18.10.2008
Offline
473
eis
#8
Pavel_:
Проверка телефона - вполне даже нехилая защита от спама... ))

Все дело в том, для чего на сайте используется форма для ввода телефона.

LEOnidUKG, все верно сказал.

Если форма используется реальная и для того чтобы организация перезванивала клиенту по указанному номеру, то он в любом случае будет заполнять верно. Максимум на что можно проверять так это на количество символов.

А так в форму просто поставить placeholder с примером номера (или вынести за форму).

- Здесь я покупаю вечные ссылки на свои сайты! (https://backlinkator.com) - сотни ссылок за копейки
[Удален]
#9
eis:
Все дело в том, для чего на сайте используется форма для ввода телефона

placeholder тута - самое то... ))

Эсминец:
Пишу форму обратной связи
IL
На сайте с 20.04.2007
Offline
435
#10
... :) Облачные серверы от RegRu - промокод 3F85-3D10-806D-7224 ( http://levik.info/regru )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий