Проверка данных формы: правила и шаблоны для полей
Номер телефона, в котором не хватает цифры. Возраст 1200 лет. Идентификационный номер, содержащий буквы. На отказ в приеме каждого из этих ответов в момент ввода уходит секунда, но на их поиск в таблице после того, как данные были суммированы, визуализированы и отправлены, уходит целый час. Проверка данных — это привычка отсеивать неверные ответы еще на входе.
В этой статье рассказывается о двух инструментах, которые предоставляет форма для этой цели: правила для каждого поля и шаблоны, а также о том, где они действуют и что делать с ответами, которые они не могут остановить.
Правила для каждого типа поля
Самые простые проверки зависят от того, какой тип ответа содержит поле:
| Поле | Правило, которое можно задать | Пример |
|---|---|---|
| Короткий или длинный текст | Минимальное и максимальное количество символов | Минимум 2 символа не позволят ввести одну букву в качестве имени |
| Число | Минимальное и максимальное значение | Возраст от 0 до 120 исключает как отрицательные числа, так и опечатки вроде 1200 |
| Дата | Самая ранняя и поздняя дата, фиксированная или привязанная к текущему дню | Дата регистрации не может быть в будущем |
| Загрузка файла | Допустимые типы файлов, максимальный размер и количество файлов | Только изображения, до определенного размера, один файл на ответ |
Используйте тип Число для всего, что вы планируете суммировать или усреднять. Числа, введенные в текстовое поле, нельзя правильно суммировать или отсортировать, поэтому самая эффективная проверка — это выбор правильного типа поля.
Шаблоны: описание точного формата ответа
Некоторые ответы имеют фиксированный формат, который невозможно выразить диапазоном: номер мобильного телефона, идентификационный номер, код ссылки. Для них вы задаете шаблон, также называемый регулярным выражением (regex), который точно описывает, как должен выглядеть ответ.
Например, ^07[0-9]{8}$ означает: начало, затем 07, затем ровно восемь цифр, затем конец. Это десятизначный номер мобильного телефона, начинающийся с 07, и ничего больше.
Несколько важных моментов:
- Шаблон должен соответствовать всему ответу целиком.
[0-9]+принимает только цифры и отклоняет0591234567abc. Для фиксированной длины укажите это:^05[0-9]{8}$. Одиночное[0-9]означает ровно одну цифру. - Шаблоны работают с арабским текстом. Готовый формат Только арабские буквы принимает арабские буквы и пробелы, поэтому имя из двух и более слов на арабском языке пройдет проверку, а цифры и латинские буквы будут отклонены. (Самостоятельное написание
^\p{Arabic}+$работает шире, чем кажется: оно принимает любые символы арабского письма, включая арабско-индийские цифры, диакритические знаки и персидские буквы, но отклоняет пробелы.) - Вы можете написать сообщение, которое увидят пользователи, если их ответ не подходит. Напишите его простыми словами, чтобы они знали, что нужно исправить.
- Некорректный шаблон отклоняется при сохранении, например, если в нем есть незакрытая скобка, поэтому ошибка в шаблоне никогда не заблокирует доступ к полю для всех пользователей.
Вам не обязательно писать их самостоятельно
Большинство людей, создающих формы, не умеют писать регулярные выражения, и им это не нужно. Помощник по шаблонам в Pulseform находится рядом с полем для ввода шаблона. Вы выбираете готовый формат, например Номер мобильного телефона, задаете начальные цифры и количество знаков, а затем нажимаете Использовать это. Шаблон и сообщение об ошибке будут заполнены за вас, а кнопка Проверить значение покажет, какие форматы принимают то, что вы вводите.
Тем не менее, протестируйте свой шаблон на нескольких реальных примерах перед публикацией, включая сложные случаи. Слишком строгий шаблон блокирует правильные ответы, а слишком мягкий пропускает неверные данные.
Где проверяется шаблон, а где нет
Это часть, которую пропускают большинство руководств. Правило эффективно лишь настолько, насколько эффективно оно применяется.
| Откуда поступает ответ | Проверяется ли шаблон? |
|---|---|
| Публичная ссылка и страница заполнения в приложении | Да. Ответ, который не подходит, отклоняется |
| Импорт записей из файла CSV | Да. Строка пропускается и помечается |
| Приложение Collect, используемое полевыми сотрудниками | Нет |
Почему не в полевых условиях? Телефон без подключения к сети не может надежно проверить шаблон, и если бы приложение приняло ответ, который сервер позже отклонил, ответ сотрудника был бы потерян после завершения интервью. Поэтому на полевых сотрудников ваши шаблоны не распространяются. Их ответы всегда сохраняются. Другие правила, такие как обязательные вопросы и диапазоны чисел, по-прежнему проверяются на устройстве.
Когда вы выдаете код сборщика для формы или опроса с шаблонами, вас просят подтвердить, что они не будут проверяться в полевых условиях. Это подтверждение запрашивается каждый раз, и пока у формы есть шаблоны и рабочий код, в заголовке отображается напоминание.
Что делать с ответами, которые не подходят
Ответ от полевого сотрудника, который не соответствует шаблону, сохраняется и учитывается, как и любой другой, но помечается, чтобы вы могли его найти:
- В деталях записи поле показывает Не соответствует ожидаемому формату.
- В списке записей установите фильтр Проверка формата на Только несовпадающие записи, чтобы увидеть только их.
- В экспорте CSV есть последний столбец, Проверка формата, где указаны соответствующие поля.
Если вы позже добавите, измените или удалите шаблон, метки будут обновлены для каждой записи этой формы, собранной в полевых условиях.
Просматривайте помеченные записи на предмет опечаток, например, пропущенной цифры в номере, и связывайтесь с сотрудником. Такие ответы никогда не отклоняются и не скрываются автоматически.
Когда использовать шаблон, а когда нет
- Используйте его для ответов с фиксированным форматом: номера телефонов, идентификационные номера, коды ссылок, почтовые индексы.
- Не используйте его для свободного текста, такого как комментарии или имена, где строгий формат может отсеять реальных людей.
- Отдавайте предпочтение правилу, а не шаблону, если правило может справиться с задачей: диапазон чисел понятнее, чем шаблон для цифр.
- Будьте вежливы в сообщении об ошибке. «Введите десятизначный номер, начинающийся с 07» лучше, чем «Неверно».
Что требовать от любого инструмента для форм
Какой бы инструмент вы ни использовали, задайте следующие вопросы:
- Предлагает ли он правила для каждого типа поля, а не только «обязательный вопрос»?
- Могу ли я описать фиксированный формат с помощью шаблона, и должен ли шаблон соответствовать всему ответу целиком?
- Есть ли помощь для тех, кто не умеет писать регулярные выражения?
- Работает ли он с арабским текстом?
- Применяется ли правило на всех каналах: публичная ссылка, импортированный файл и полевая команда?
- Что происходит с ответом, который он не может проверить? Безопасный дизайн сохраняет его и помечает для проверки.
В Pulseform
Правила полей и шаблоны настраиваются в разделе Дополнительные настройки для каждого поля формы. Тот же пользовательский шаблон доступен для текстовых вопросов в опросах. См. создание формы и правила полей, ответы, не соответствующие шаблону, пользовательские шаблоны в полевых условиях и выдача кодов сборщиков в руководстве.
Попробуйте на своих данных
Создайте опрос или форму и смотрите результаты по мере поступления ответов.
Начать бесплатный пробный период на 14 дней