Проверка номеров телефонов в форме без написания регулярных выражений

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

Стандартное решение — это шаблон, также называемый регулярным выражением (regex), который точно определяет, как должен выглядеть корректный номер. Проблема в том, что мало кто из создателей форм умеет их писать. В этой статье рассказывается, как получить правильный шаблон, не создавая его вручную, и что именно этот шаблон будет (или не будет) принимать, чтобы вы могли решить, подходит ли он для вашей формы.

Решите, что вы принимаете

Три вопроса помогут прояснить большинство ситуаций:

  1. Это национальный мобильный номер или любой номер в мире? У мобильного номера есть известное начало и длина в каждой стране. Международный номер варьируется.
  2. Нужен ли код страны? Если ответы приходят из одной страны, национальный формат проще для ввода пользователями.
  3. Разрешены ли пробелы и тире? Для готовых форматов ниже ответ — нет: только цифры. Укажите это в тексте подсказки к вопросу, чтобы люди знали.

Готовые форматы

Рядом с полем для шаблона Помощник по шаблонам предлагает форматы именно для этих целей:

  • Мобильный номер. Две настройки: с чего он начинается и общее количество цифр. Если начать с 07 и указать десять цифр, помощник напишет ^07[0-9]{8}$: 07, за которыми следуют ровно восемь цифр.
  • Международный номер телефона. Две настройки: минимальное и максимальное количество цифр (по умолчанию 8 и 15) и опциональный ведущий +. Записывается как ^\+?[0-9]{8,15}$.
  • Число фиксированной длины, когда вам просто нужно число определенной длины, и Только цифры, когда важны только сами цифры.

Выберите нужный вариант, настройте параметры и нажмите Использовать это. Шаблон и сообщение об ошибке будут заполнены автоматически.

Проверьте перед публикацией

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

Что вы вводите Мобильный с 07, 10 цифр
0791234567 принято
079123456 (не хватает одной цифры) отклонено
0791234567abc (буквы после номера) отклонено
079 123 4567 (с пробелами) отклонено

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

Три момента, на которые стоит обратить внимание

Цифры, введенные арабскими символами. Готовые форматы принимают цифры от 0 до 9. Номер, введенный арабскими цифрами (٠٧٩١٢٣٤٥٦٧), будет отклонен, даже если человек прочитает его как тот же самый номер. Это зависит от клавиатуры и настроек телефона, но если ваши респонденты могут использовать другой тип цифр, укажите в подсказке: «вводите номер цифрами от 0 до 9».

Пробелы и тире. 079 123 4567 также будет отклонен. Попросите людей вводить номер без пробелов или, если вы хотите быть более гибкими, напишите свой собственный шаблон в поле.

Правила страны. Форматы являются общими: вы сами выбираете начальные цифры и длину. Pulseform не содержит базу национальных планов нумерации, поэтому перед настройкой проверьте правильное начало и длину для вашей страны, например, у регулятора связи или оператора. Тогда шаблон будет ровно настолько строгим, насколько это необходимо.

Где применяется проверка

Шаблон проверяется по публичной ссылке, на странице заполнения в приложении и при импорте CSV файла (строка с неверным номером пропускается, и об этом сообщается). Проверка не выполняется в приложении Collect, которое полевые команды используют без подключения к сети, так как офлайн-телефон не может надежно оценивать шаблоны. Ответ сборщика данных всегда сохраняется, и если номер не соответствует формату, он помечается, чтобы вы могли отфильтровать эти записи и перезвонить для исправления.

Использование шаблона в другом месте

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

В Pulseform

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

Попробуйте на своих данных

Создайте опрос или форму и смотрите результаты по мере поступления ответов.

Начать бесплатный пробный период на 14 дней