Страница 1 из 2

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 7:04
Игорь Столяров
Привет всем ! :)

Возникло непреодолимое желание проверять номера мобильных телефонов клиентов в программе.

Хотя бы РФ и хотя бы просто по синтаксису ... Существуют ли вообще какие-то описания требований ?
Например те же таблицы или диапазоны корректных кодов операторов ? Правила составления номеров ?

Или может быть кто-нибудь пробовал решить задачу на Clarion ?
Заранее спасибо за наводку ...

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 11:12
kreator
Мне кажется, что мобильный номер в России имеет только десять цифр плюс код страны. Скорее всего и международный такой. Есть у меня разработка программы для биллинга. Могу вечером дома попробовать найти файл данных конторы, которая предоставляет услуги связи, и посмотреть какие есть вообще варианты. Помню, что есть там справочник кодов, который показывает страну/регион+тип ('7903' - 'Россия/Билайн'). Иностранные операторы, сдаётся мне, не расписаны точно. Но надо посмотреть.

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 12:00
Игорь Столяров
Ну там у них без нас всё запущено ... ;)

Вижу два пути, постараюсь с этого что-то слепить:

1. Действительно есть таблицы кодов мобильных операторов и правила составления номеров.
Например: http://codificator.ru/code/mobile/

2. Можно "попросить" оператора сервиса SMS рассылок отправить тестовое служебное сообщение
на номер мобильного телефона (бесплатно). Это проверит не только правильность номера, но и его доступность.
При этом такое сообщение на телефоне показано не будет - просто тест связи.

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 12:10
kreator
1. Сейчас номер как-бы "отвязан" от оператора. В общем не важно, Мегафон, МТС и т.д.
2. А если телефон выключен?
Мне кажется - синтаксис однозначный, 10 цифр. Доступность номера в данный момент - совсем под вопросом. Операторы не блокируют какое-то время даже номер с долгами. А потом передают номер другому (я с этим столкнулся, вообще хохма).

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 12:19
Игорь Столяров
kreator писал(а): 01 Август 2017, 12:10Мне кажется - синтаксис однозначный, 10 цифр
Да, и начало должно быть "+79" или '89'. В номере не должно быть ничего кроме цифр, скобок и разделителей (пробел, дефис).
Ну и опционально, проверка доступности. Уже хорошо. :)

Проверка номера мобильного телефона

Добавлено: 01 Август 2017, 13:51
kreator
Надо ещё посмотреть - нет ли кодов городов, начинающихся с девятки.

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 1:32
RaFaeL
kreator писал(а): 01 Август 2017, 11:12Мне кажется, что мобильный номер в России имеет только десять цифр плюс код страны. Скорее всего и международный такой.
Международные бывают и длиннее

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 8:06
Admin
Требование вводить в международном формате!
А дальше я бы вот такое предложил:

Код: Выделить всё

             PROGRAM
             MAP
               PhoneNumber(STRING Phone),STRING
             END

 CODE
 MESSAGE(|
 PhoneNumber('8-914-541-23-92')&'|'&|
 PhoneNumber('8-(914)54123-92')&'|'&|
 PhoneNumber('8-09-1-4-5-4-1-2-,3-92 телефон')&'|'&|
 PhoneNumber('+8234523455914-541-23-92')&'|'&|
 PhoneNumber('8-(914-541-23-92)')&'|'&|
 PhoneNumber('8-41-23-92)'))


PhoneNumber PROCEDURE(STRING Phone)!,STRING
lCik        BYTE
lPos        BYTE(10)
lPhone      STRING(10)
  CODE
  LOOP lCik = LEN(Phone) TO 1 BY -1
    IF MATCH(Phone[lCik],'[0-9]', Match:Regular)
      lPhone[lPos] = Phone[lCik]
      lPos-=1
      IF lPos = 0 THEN BREAK END
    END
  END
  lPhone = LEFT(lPhone)
  IF LEN(CLIP(lPhone)) = 10
    RETURN '+7'&lPhone
  END
  RETURN '-BAD CALL-'
2017-08-03_15-04-34.png
2017-08-03_15-04-34.png (9.59 КБ) 3154 просмотра

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 8:09
Admin
Хотя да, такое верно наверное только для России :)
За границей, кто в лес кто по дрова: https://www.virtualvista.com/app/public ... es?lang=ru

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 10:44
kreator
Admin писал(а): 03 Август 2017, 8:09 За границей, кто в лес кто по дрова: https://www.virtualvista.com/app/public ... es?lang=ru
Да уж. Без локализации не обойтись. Вот iPhone чётко отображает - +7 (ххх) ххх-хх-хх. Видимо, внутри есть настройка на формат телефона в России.

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 15:49
gopstop2007
толку от номера? в скайпе можно любой придуманный номер указать и с него звонить не говоря про другие мессенджеры

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 16:45
Игорь Столяров
gopstop2007 писал(а): 03 Август 2017, 15:49в скайпе можно любой придуманный номер
Не о том песня эта ... причём совсем. Нет задачи контролировать по номеру звонящего абонента.
Есть масса мест, где клиент сообщает оператору свой номер телефона: контактные реквизиты при сдаче в ремонт,
приём моментальных платежей для пополнения баланса, сейчас еще и он-лайн чеки при любой оплате и т.д.

Человеку свойственно ошибаться, особенно когда вводишь эти номера телефонов по сотне в день: там "+" забыл
перед "7", в другом месте пропустил первую "8", два раза сработала клавиша при нажатии цифры и т.д.
Нужен хотя бы минимальный контроль вводимых данных, что бы потом система могла по этим номерам
отправлять уведомления, проводить платежи, отправлять чеки и т.д. Вот и всё. И не более того ... ;)

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 18:04
RaFaeL
Так задай в поле пользовательский формат и всё
@K+7 (###) ###-##-##K
От опечатки в цифре вряд ли что-то поможет

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 18:07
gopstop2007
Игорь Столяров писал(а): 03 Август 2017, 16:45
Не о том песня эта ... причём совсем. Нет задачи контролировать по номеру звонящего абонента.
А чем двух факторная верификация не устраивает? через смс?

Проверка номера мобильного телефона

Добавлено: 03 Август 2017, 18:08
Игорь Столяров
RaFaeL писал(а): 03 Август 2017, 18:04Так задай в поле пользовательский формат и всё
Тоже хороший вариант, но не гибкий. Кто-то оставляет городской номер, кто-то мобильный ...
Опять-таки, как верно заметили ранее, попадаются номера украинских операторов и т.д.