Как проверить правильность телефонного номера

1. Vlan 36 30.09.24 13:53 Сейчас в теме
Всем привет. Делаю выгрузку на сайт партнера. Для клиентов необходимо указывать телефонный номер. Некорректные номера сайт не пропускает. Есть ли возможность проверки правильности заполнения для мобильного и городского номера? Конфигурация самописная, управляемые формы. Есть БСП 2.2.3.40
Если не средствами 1С, то может есть такой бесплатный ресурс в и-нете?
По теме из базы знаний
Найденные решения
15. Vlan 36 01.10.24 08:02 Сейчас в теме
Нашел другой ресурс для проверки. Пока пользуюсь такой функцией:
Функция ВыполнитьПроверкуНомераТелефона(НомерТелефона)
	АдресСайта="giggsey.com"; 
	ЗащищенноеСоед=Новый ЗащищенноеСоединениеOpenSSL;
	Соединение=Новый HTTPСоединение(АдресСайта,443,,,,30,ЗащищенноеСоед);
	АдресРесурса="/libphonenumber/index.php?phonenumber=7"+НомерТелефона+"&country=RU&language=ru®ion­=RU";
	Запрос=Новый HTTPЗапрос(АдресРесурса);
	Попытка
		ОтветHTTP=Соединение.Получить(Запрос);
	Исключение
		 Возврат "Ошибка "+ОписаниеОшибки();
	КонецПопытки;
	Если ОтветHTTP.КодСостояния=200 Тогда
		СтрокаОтвета=ОтветHTTP.ПолучитьТелоКакСтроку();
		ЧтениеHTML=Новый ЧтениеHTML;
		ЧтениеHTML.УстановитьСтроку(СтрокаОтвета);
		Построитель=Новый ПостроительDOM;
		ДокHTML=Построитель.Прочитать(ЧтениеHTML);
		ЭлементыДокHTML=ДокHTML.ПолучитьЭлементыПоИмени("td");
		Ответ=СокрЛП(ЭлементыДокHTML.Элемент(7).ТекстовоеСодержимое);
		Возврат Ответ="true";
	Иначе
		Возврат "Ошибка "+ОтветHTTP.КодСостояния;
	КонецЕсли;
КонецФункции
Показать

Если других вариантов не предложат, можно считать тему закрытой
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vlan 36 30.09.24 14:00 Сейчас в теме
(1) Пока делаю через сайт https://opendata.digital.gov.ru/registry/numeric/search-by-number
Но, возможно, есть другие проверенные способы
3. lmnlmn 69 30.09.24 14:11 Сейчас в теме
(1) C 8.3.23 1С умеет в регулярные выражения, на сервере, по крайней мере. СтрПодобнаПоРегулярномуВыражению()
4. Vlan 36 30.09.24 14:16 Сейчас в теме
(3) Тут немного другое.Я привожу номер к 10-значному виду, проверяю на цифры, убираю лишнее. Но начинается номер, допустим, с 897. Для меня - все равно, а запрос заворачивают - некорректный номер.
6. user1936660 30.09.24 14:47 Сейчас в теме
(3)
СтрПодобнаПоРегулярномуВыражению
Прикрепленные файлы:
5. user1936660 30.09.24 14:44 Сейчас в теме
(1)
Некорректные номера сайт не пропускает
Пока ты не узнаешь, как именно проверяет номера этот сайт, все твои телодвижения бессмыслены. Будут просто два разных набора проверок - твой, выдуманный из каких-то соображений, и фактически применяемый на сайте.
7. Vlan 36 30.09.24 15:14 Сейчас в теме
(5) Ну, примерно я представляю. Существуют мобильные номера, начинающиеся с 9. Есть городские, начинающиеся с 8. Осталось только набить список годов города и кодов мобильных операторов. :-)
Вот этого и хочу избежать, воспользовавшись универсальным способом.
opendata.digital.gov.ru что-то заворачивает меня по ошибке 301 по кругу. Если кто знает, как обойти, это и будет решением моей проблемы.
8. user1936660 30.09.24 15:28 Сейчас в теме
(7)
Существуют мобильные номера, начинающиеся с 9.
А почему не с +7?
9. Vlan 36 30.09.24 15:33 Сейчас в теме
(8) Берутся только российские 10 знаков
11. lmnlmn 69 30.09.24 16:45 Сейчас в теме
(9) Мобилы все с "9" начинаются, а по междугородним план нумерации РФ можно "интегрировать" + всякие исключения типа 8 800...
12. user2033930 30.09.24 16:58 Сейчас в теме
(11) Это что ж мне, казаху, нельзя теперь своим номером +7 (720) пользоваться?
13. lmnlmn 69 30.09.24 17:06 Сейчас в теме
Автор ограничивается номерами РФ, а СССР в 1991 еще закончился.
10. booksfill 30.09.24 16:43 Сейчас в теме
(7)
Если кто знает, как обойти, это и будет решением моей проблемы.


Что лежит в заголовке ответа сервера gov в поле Location?
14. Vlan 36 30.09.24 19:14 Сейчас в теме
(10) Чередует этот же адрес то http, то https
15. Vlan 36 01.10.24 08:02 Сейчас в теме
Нашел другой ресурс для проверки. Пока пользуюсь такой функцией:
Функция ВыполнитьПроверкуНомераТелефона(НомерТелефона)
	АдресСайта="giggsey.com"; 
	ЗащищенноеСоед=Новый ЗащищенноеСоединениеOpenSSL;
	Соединение=Новый HTTPСоединение(АдресСайта,443,,,,30,ЗащищенноеСоед);
	АдресРесурса="/libphonenumber/index.php?phonenumber=7"+НомерТелефона+"&country=RU&language=ru®ion­=RU";
	Запрос=Новый HTTPЗапрос(АдресРесурса);
	Попытка
		ОтветHTTP=Соединение.Получить(Запрос);
	Исключение
		 Возврат "Ошибка "+ОписаниеОшибки();
	КонецПопытки;
	Если ОтветHTTP.КодСостояния=200 Тогда
		СтрокаОтвета=ОтветHTTP.ПолучитьТелоКакСтроку();
		ЧтениеHTML=Новый ЧтениеHTML;
		ЧтениеHTML.УстановитьСтроку(СтрокаОтвета);
		Построитель=Новый ПостроительDOM;
		ДокHTML=Построитель.Прочитать(ЧтениеHTML);
		ЭлементыДокHTML=ДокHTML.ПолучитьЭлементыПоИмени("td");
		Ответ=СокрЛП(ЭлементыДокHTML.Элемент(7).ТекстовоеСодержимое);
		Возврат Ответ="true";
	Иначе
		Возврат "Ошибка "+ОтветHTTP.КодСостояния;
	КонецЕсли;
КонецФункции
Показать

Если других вариантов не предложат, можно считать тему закрытой
16. Vlan 36 02.10.24 08:38 Сейчас в теме
(15) параметр "region" автозамена испортила
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот