Подсказки: API для ввода почтовых адресов и ФИО одной строкой

    Если вам когда-нибудь приходилось разрабатывать форму регистрации или оформления заказа, то вы знаете, что для получения из формы качественных данных нужно прикрутить множество проверок для ФИО, почтовых адресов, e-mail, телефонов. При этом так уж исторически сложилось, что разработчики пишут код валидации информации каждый раз заново. Ну а потом эти проверки приходится еще и поддерживать, а на поддержку, как известно, приходится 80% усилий.

    Кроме того, чем сложнее форма для ввода, и чем больше в ней валидируется информации, тем больше вероятность, что она будет глючить, и как результат — будет неудобна для пользователя.

    Так не должно быть.



    Чтобы улучшить ситуацию с проверкой информации, мы разработали сервис Подсказки, который раз и навсегда призван ликвидировать проблему проверки контактных данных на форме ввода. С Подсказками пользователь начинает вводить адрес или ФИО в свободной форме, а сервис автоматически предлагает подходящие варианты и возвращает результаты в гранулярном виде.

    Вот пример его работы для ввода адресов:

    image

    Когда вы выберете из списка адрес, сервис автоматически вернет вам его почтовый индекс. Конечно, для этого нужно будет указать дом.

    И ФИО:

    image

    Все, что нужно для начала использования — подключить к полю для ввода джаваскрипт, вызывающий сервис Подсказок, и наслаждаться результатами.

    В будущем мы планируем подключить компоненты для проверки наименования компании по ЕГРЮЛ/ЕГРИП, e-mail, телефонов, дат рождения и документов, удостоверяющих личность.

    Наша конечная цель — сделать набор идеально отлаженных скриптов для подключения готовых сервисов Фактор по проверке данных. С ними веб-мастер сможет быстро набросать форму ввода контактных данных, подключить скрипты проверки, выложить все на сайт, и это будет работать «из коробки».

    Надеемся, что сервис будет вам полезен!
    HFLabs 85,19
    Качество и интеграция клиентских данных
    Поделиться публикацией
    Похожие публикации
    Комментарии 62
    • +3
      Сервис просто супер! Спасибо!
      Одно но: вы объявляете свой элемент через $("#address").autocomplete({… и точно также объявляется выпадающий список из стандартного набора jquery ui jqueryui.com/autocomplete/. Конфликтов не будет?
      • 0
        Спасибо, пользуйтесь на здоровье :-) Конфликт с autocomplete действительно возможен, эту проблему исправим в ближайшем будущем.
        • 0
          Исправили, теперь плагин называется suggestions.
        • +2
          Не удержался, и поставил +1 девушке с датой регистрации 23 февраля.
          Было бы хорошо, если бы можно было выбирать город в приоритет, чтобы если мы находимся не в Дефолт сити, то улицы этого замечательного центра уходили бы вниз списка, а на первое места ставились местные адреса.
          • +1
            Действительно, сейчас первые места оккупировали Питер и Нерезиновая, это не всегда удобно. В дальнейшем реализуем ваш вариант или автоопределение умолчательного города через geolocation.
            • 0
              спасибо :) я и не обращала внимание на дату регистрации, а и правда прикольно :)

              спасибо за предложение! думаю, что сделаем через гео
            • +1
              Рекомендую добавить GeoIP при поиске адресов дабы задать контекст города/области.
              • 0
                Да, это есть в планах.
                • –2
                  А если я через VPN сижу? Мой IP из Амстердама, а сам я из Москвы.
                  • 0
                    Тогда останется дефолтное ранжирование вариантов
                    • +2
                      Про бабушку, яйца и дедушку.
                    • +2
                      Сделали автоматическое определение местоположения (до города) по IP-адресу.
                    • +2
                      Кроме России будут ещё страны? Если да, то какой регион в приоритете (СНГ/Европа/etc.)?
                      • +2
                        Страны будут, в приоритете СНГ (в первую очередь Украина).
                      • 0
                        Какая-то странная база адресов. Ввожу Красина 4 Екатеринбург получаю «Вы ввели неизвестный нам адрес». Яндекс, Гугл и 2Гис нормально распознают.
                        • 0
                          Мы используем классификатор адресов России (КЛАДР). В нем номера домов для улицы Красина в Екатеринбурге отсутствуют, поэтому по точному номеру дома подсказок и нет. Если указать просто улицу — будут.
                          • 0
                            Есть некая гипотеза, что налоговый справочник точнее кладра. Пока гипотеза подкреплена только личными ощущениями. Вы не пробовали их сравнивать?
                          • +1
                            А как Вы решили вопрос с ограничениями лицензионной политики базы КЛАДР? С свое время мы очень плотно прорабатывали этот вопрос и в итоге нам пришлось отказаться непосредственно от базы КЛАДР
                            • +1
                              Приняли как риск до возникновения судебной практики. Согласно тексту лицензии (п. 3) получается, что даже публикация адреса в формате КЛАДРа является распространением компонента КЛАДР и запрещена. Что делает невозможным достижения целей использования, прописанных (п. 1). Думаю, что на волне инициатив государства по открытым данным и поощрению создания производных продуктов вероятность возникновения проблем с этой лицензией стремится к нулю.
                              • 0
                                А в случае возникновения? Закроете сервис?
                                • 0
                                  Ну если дойдет до запрета публикации адресов в формате КЛАДР, то переключимся на другую базу, потому что тогда никто не сможет использовать КЛАДР :)
                                  • 0
                                    Ну, это не совсем так. КЛАДР можно использовать бесплатно в своих целях. Именно поэтому есть загрузки кладра, например, в 1ску. А вот предоставлять доступ третьим лицам, да еще и платно :) а-та-та :)
                                    • 0
                                      Мы не предоставляем доступ именно к КЛАДРУ, мы показываем адреса, разобранные по КЛАДР.
                                      Так что тут вопрос тонкий, а-та-та или нет :)
                                      • 0
                                        Понятно :) Право что-то мне подсказывает, что налоговой или кто будет разбираться, этот вопрос тонким не покажется, но это конечно уже не мое дело.
                                        Вам остается пожелать только удачи.
                                • 0
                                  Т.е. насколько я понял сервис стабильно работает до первого возникновения судебной практики?
                                  • 0
                                    Нет.

                                    Просто пока она не возникла, этот риск нельзя оценить. Когда она возникнет, будет понятно, что с этим делать.

                                    За 10 лет существования КЛАДР и его использования на различных сервисах, в том числе и в коммерческих целях, прецедентов пока не было. Поэтому мы оцениваем риск негативной судебной практики как низкий.
                              • 0
                                Если не ошибаюсь, кладр уже устарел и сейчас стоит начать пользоваться классификатором ФИАС. Почему не выбрали его?
                                • 0
                                  По идее, ФИАС должен содержать все те же адреса, что и КЛАДР, плюс дополнительную информацию типа муниципального деления. Но на практике часть адресов в ФИАС отсутствует. Ждем, пока доведут до ума :-)
                                  • 0
                                    Обновления на фиас выходят еженедельно.
                                    Не могу возразить по соответствию адресов, но могу сказать, что одному коду кладр может соответствовать 2 кода фиас.
                                    • 0
                                      В документации написано, что в ФИАС в таблице ADDROBJ* код кладр состоит из 17 цифр, в то время как код кладр домов состоит из 19 (в таблице кладр DOMA.DBF).

                                      В таком случае, конечно, код кладр будет дублироваться в адресах с разными домами.
                                      • 0
                                        Вы правы, проверил — в чисто адресных данных нет ни одного кладра, соответствующего двум фиасам. Почему-то был уверен, что видел.
                                        С другой стороны, есть несколько тысяч классов фиас без непосредственно кладра — улицы в разных СНТ (Причем, у самих СНТ есть кладр). Например, 14ff9956-c526-4f04-8907-70c0a7e6f123, 446200, Самарская обл, Новокуйбышевск г, СДТ Огонек снт, 3-й кв-л.

                            • 0
                              База у вас пополняется каким образом?
                              Пытался найти адрес «дом 25 литер Ж», по строке «25 ж» не нашел, оказалось, что он числится как «д.25 ЛИТЕРЖ», да, без пробелов.
                              • 0
                                Используем КЛАДР, обновляем по мере выхода новых версий. К сожалению, в КЛАДРе написание владений, строений, литер и некоторых других адресных компонентов бывает очень экзотическим (вроде того, что вы привели). Будем исправлять в дальнейшем на человекочитаемые.
                              • 0
                                А как это он так с фамилиями в курсе?
                                • 0
                                  У нас в HFLabs есть справочник многих фамилий :-)
                                  • 0
                                    Организуйте Хабра-утечку.
                                    • 0
                                      Интересная мысль :-)
                                • 0
                                  С Новой Москвой помаятесь. )
                                  • 0
                                    Сервис отличный! Рад, что таких все больше.

                                    Но еще есть над чем работать.

                                    Вот замечания (ввожу свое имя Мацовкин Андрей):
                                    — фамилии нет в базе (это в общем не проблема весь мир не охватишь, тем более фамилия редкая)
                                    — начинаю вводить имя, а он мне предлагает то что на картинке:
                                    во-первых, в списке и фамилии и имена, хотя можно предположить, что уже вводится имя
                                    во-вторых система не определила мой пол (что по фамилии в русском языке часто можно элементарно сделать)

                                    Алгоритм может быть следующий, после ввода первого слова ищем его в словаре имен, если не нашли — логично предположить что это фамилия, можно попробовать определить пол по окончанию фамилии.
                                    Если после ввода второго слова окажется что ввели «еще одну» фамилию, то первое предполагаем именем.

                                    Ну и несколько вопросов:
                                    У вас внутри системы есть деление на справочник имен и справочник фамилий?
                                    Добавляются ли автоматически новые фамилии/имена после ввода их в форму?
                                    Как решается проблема составных имен/фамилий, типа «АЛИ ОГЛЫ»?

                                    • 0
                                      Да, поведение в данном случае действительно нелогичное, спасибо, исправим!

                                      > У вас внутри системы есть деление на справочник имен и справочник фамилий?

                                      Да, конечно.

                                      >Добавляются ли автоматически новые фамилии/имена после ввода их в форму?

                                      Нет, иначе справочники быстро замусорятся. Их пополнение — это отдельный процесс в hflabs.ru с комплексом мер по контролю качества.

                                      > Как решается проблема составных имен/фамилий, типа «АЛИ ОГЛЫ»?

                                      В сервисе разбора в dadata.ru оглы/кызы считается частью отчества. К подсказкам этот функционал не подключили еще. Запланировали на ближайшее будущее!
                                    • 0
                                      Еще по адресу замечания,
                                      откуда вы берете данные?
                                      Почему все номера домов с какой-то литерой? К нас отродясь «литер» в адресе не было.
                                      Кроме того, нет на нашей улице дома 38корп5 (хотя может я чего-то не знаю…)

                                    • +1
                                      Полезный сервис!
                                      Для валидации и подсказок E-mail можно воспользоваться сервисом «Печкин.Фикс». Хотя он не идеален, и есть, что развивать и улучшать, но, как мне кажется, его разработчики примут полезные советы по развитию.
                                    • 0
                                      Интересно, если набирать «Ботаническая», то выдаётся такая улица в Москве, потом Бурятия, Дагестан, Карелия и т.д. Если же набирать «Петергоф Бот...», то все адреса находятся.
                                      Но если начать набирать «Чичеринс...», или «Шахмато...» то Чичеринская улица и улица Шахматова в том же Петергофе находятся сразу, без дополнительных подсказок.
                                      Почему так?
                                      • 0
                                        Варианты отсортированы по вероятности, которая в общем случае зависит от количества проживающих в этом месте людей. Видимо, Чичеринская и Шахматова являются либо уникальными для Петергофа, либо в других сторонах на этих улицах меньше людей живет.
                                        • 0
                                          Вопрос скорей в другом: почему Ботаническая вообще не выводится, если не начать запрос с явного «Петергоф»?
                                          • 0
                                            Ботанических улиц в стране слишком много, чтобы всех их вывести в качестве вариантов. Поэтому сразу напрашивается два варианта:

                                            1. Сужение пространства поиска по IP пользователя. С этим вообще большинство проблем снимается сразу.

                                            2. Если объектов с названием слишком много, то в подсказки выводить не адреса, а продолжения этого слова.

                                            Сначала реализуем первый вариант, если не окажется достаточно, то и второй. Вообще, по нашим наблюдениям, с улицы адреса начинают в основном москвичи )))
                                            • 0
                                              Сужение пространства поиска по IP пользователя

                                              Так я и проверяю, сидя на этой самой Ботанической в Петергофе :) Во всяком случае и maxmind, и 2ip определяют меня с точностью до «Санкт-Петербург, SatNet». В самом СПб Ботанической улицы нет, SatNet — это по определению Петергоф…

                                              с улицы адреса начинают в основном москвичи )))

                                              Или те, кто привык к тестированию, и начинает сразу с неочевидного поведения юзера :)
                                              • 0
                                                В данном частном случае точности до СПб бы хватило, чтобы предложить несколько подходящих вариантов с городами Петергоф, Сестрорецк и Ломоносов. Вообще, в случае с подсказками точности до региона достаточно, чтобы сократить пространство в 10-100 раз — это в пользовательском опыте дает качественную разницу.
                                                • 0
                                                  Так а почему бы, даже не определяя IP, выдавать что поближе к Москве, чем, скажем, Бурятия?

                                                  • 0
                                                    На Улан-Удинской Ботанической домов в несколько раз больше, чем на Казанской Ботанической. Поэтому вероятность, что человек именно из Улан-Удэ в несколько раз выше, поэтому она раньше и показывается. Москва как центр вселенной не зашита, просто на ее улицах действительно много людей живет, поэтому московские адреса в конкурсе на вероятность и побеждают.
                                                    • 0
                                                      Таки мне всё равно непонятно, почему в такой выдаче нет Петергофа. Домов на этой улице всяко больше, чем в Казани. А уж если сравнивать количество проживающих, то, боюсь, и Москва позади останется :)
                                      • 0
                                        По-моему Вы немного лукавите в сравнении тарифов — у Вас на «бесплатном» тарифе есть ограничение по количеству обращений (1000 запросов в сутки, что очень мало), в то время как, например, у «Кладра в облаке» ограничений нет.
                                        • +1
                                          Спасибо, поправим матрицу сравнения. Разъехалась в ходе многочисленных обсуждений и согласований )))

                                          А какая граница по-вашему была бы более разумной для бесплатной версии?
                                          • 0
                                            Исправили сравнение и заодно увеличили бесплатный лимит в 10 раз.
                                          • 0
                                            Интересно, как вы обновление КЛАДРа реализовали — инкрементальное или заливаете целиком? Ох и повозиться с ним пришлось…
                                            • 0
                                              Ну и возврат кода найденного адреса тоже, наверное, в API не помешал бы.
                                              • 0
                                                Да, КЛАДР штука специфическая :-) Заливаем целиком, возврат кода уже делаем, зарелизим в феврале.
                                                • 0
                                                  Добавили возврат кода КЛАДР, поле data.kladr_id.

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое