Страница 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 (9.59 КБ) 3154 просмотра
Проверка номера мобильного телефона
Добавлено: 03 Август 2017, 8:09
Admin
Хотя да, такое верно наверное только для России
За границей, кто в лес кто по дрова:
https://www.virtualvista.com/app/public ... es?lang=ru
Проверка номера мобильного телефона
Добавлено: 03 Август 2017, 10:44
kreator
Да уж. Без локализации не обойтись. Вот 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Так задай в поле пользовательский формат и всё
Тоже хороший вариант, но не гибкий. Кто-то оставляет городской номер, кто-то мобильный ...
Опять-таки, как верно заметили ранее, попадаются номера украинских операторов и т.д.