Валидация ответов в Google Forms

Быстрые ссылки
- О функции Response Validation в Google Forms
- Проверка числового значения
- Проверка email и текстовых ответов
- Ограничение длины ответа
- Проверка по регулярным выражениям
- Ограничение числа отмеченных чекбоксов
- Пользовательский текст ошибки
О функции Response Validation в Google Forms
Если вы создаёте опрос, тест или контактную форму и хотите гарантировать, что ответы соответствуют заданным параметрам, используйте Response Validation. Это встроенная опция, позволяющая не принимать ответы, не удовлетворяющие правилам, и показывать участникам понятное сообщение об ошибке.
Коротко: Response Validation — это правило проверки конкретного поля вопроса. Поддерживается для типов вопросов: Short Answer (Краткий ответ), Paragraph (Абзац) и Checkbox (Флажки). Набор условий зависит от типа вопроса.
Как включить:
- Выберите тип вопроса «Short Answer», «Paragraph» или «Checkbox» в правой части поля вопроса.
- Нажмите на три точки внизу справа поля вопроса.
- Выберите “Response Validation”.

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

Важно: Response Validation проверяет только ввод в текущем вопросе и не выполняет взаимных проверок между разными вопросами (например, сравнение двух чисел в разных полях). Для межполей потребуется Google Apps Script или внешняя обработка ответов.
Проверка числового ответа
Когда нужно: оценки в тестах, возраст, количество предметов, цена и т. д.
Тип вопроса: Short Answer. В первом выпадающем выберите “Number”, во втором — условие (Equal to, Not equal to, Greater than, Less than, Between и т. п.), в третьем — значение или диапазон.
Примеры условий:
- Is number — просто проверка, что введённое значение интерпретируется как число.
- Greater than / Less than — для пороговых проверок (например, возраст > 18).
- Between / Not between — для диапазонов (например, баллы между 0 и 100).

Совет: при проверке диапазонов заранее решите, включены ли границы (>= / <=) — Google Forms использует понятия Between/Not between; тестируйте граничные значения.
Проверка email и других текстовых ответов
Когда нужно: формы обратной связи, регистрация, проверка наличия ключевого слова в ответе.
Тип вопроса: Short Answer. В первом выпадающем выберите “Text”, во втором — условие (Contains, Does not contain, Email, URL и т. п.), в третьем — текстовый критерий.

Примеры:
- Email — проверит формат адреса электронной почты, но не существование домена или почтового ящика.
- URL — проверит, что ввод выглядит как веб-адрес.
- Contains — полезно в тестах, когда ответ должен содержать определённое слово или фрагмент.
Важно: проверка формата email — базовая. Если нужен полный контроль (включая проверку домена), рассмотрите валидацию на стороне сервера или проверку через API.
Ограничение длины ответа
Когда нужно: номера телефонов фиксированной длины, коды, краткие комментарии.
Типы вопросов: Short Answer и Paragraph. В первом выпадающем выберите “Length”, затем Minimum или Maximum Character Count и укажите число символов.

Пример: для 10-значного номера телефона используйте Minimum = 10 и Maximum = 10 или требуйте exact length логикой тестов.
Замечание: при подсчёте символов учитываются пробелы и знаки препинания. Для строгой проверки формата телефона лучше комбинировать Length и Regular Expression.
Проверка по регулярным выражениям
Когда нужно: сложные шаблоны, коды, форматы с несколькими условиями.
Типы вопросов: Short Answer и Paragraph. В первом выпадающем выберите “Regular Expression”, во втором — условие (Contains, Doesn’t Contain, Matches, Doesn’t Match), а в третьем — сам шаблон.

Примеры в статье:


Практические замечания по регулярным выражениям:
- В Google Forms регулярные выражения интерпретируются без флагов; учтите регистрозависимость. Если нужна нечувствительность к регистру, используйте явные группы (например, [Ff]).
- Шаблон “f.” означает “буква f, затем любой один символ”. Шаблон “fe” — это некорректное понимание для многих: в стандартных регулярных выражениях ““ относится к предыдущему символу (0 и более повторений), поэтому “fe” означает «нулевое или большее число букв f, затем e». Часто для «начинается на f и заканчивается на e» используют ^f.e$.
- Если вы не уверены в синтаксисе RE, протестируйте шаблон сначала в онлайн-RE-тестере, затем вставляйте в форму.
Полезный краткий справочник по часто используемым конструкциям RE:
- ^ и $ — начало и конец строки.
- . — любой символ, кроме переноса строки.
- — 0 или более повторений предыдущего символа или группы.
- — 1 или более.
- ? — 0 или 1.
- [] — набор символов, например [A-Za-z0-9].
- () — группа, | — логическое ИЛИ.
Проверка числа отмеченных чекбоксов
Тип вопроса: Checkbox. Эта валидация применяется только к чекбоксам, потому что ответ может включать несколько выборов.
В первом выпадающем выберите: “Select at least”, “Select at most” или “Select exactly”; справа укажите число.

Пример: если у вас вопрос «Выберите три наиболее важных функции», выберите “Select exactly” = 3.

Совет: если вы хотите, чтобы пользователь мог выбрать несколько, но обязательно от 1 до 3, используйте “Select at least” = 1 и “Select at most” = 3 в сочетании (в Google Forms можно добавить только одно правило в интерфейсе, поэтому рационально отразить верхний и нижний пределы через текст подсказки и тестирование). Для строгого контроля используйте Checkbox Grid или отдельную логику в обработке ответов.
Пользовательский текст ошибки
Google Forms генерирует стандартные сообщения (например, «Must be a number»). Вы можете заменить их на понятный текст, который подскажет участнику, как исправить ввод.

Чтобы задать свой текст: в поле справа от параметров введите сообщение и сохраните.

Пример хорошего сообщения: «Введите десятизначный номер без пробелов и скобок, например 9123456789». Ясный текст повышает процент корректных ответов и снижает отказы.

Когда встроенная валидация не подходит (ограничения и альтернативы)
Когда Response Validation может оказаться недостаточной:
- Нужна логика, сравнивающая ответы в двух или более полях (например, сумма двух полей <= 100). Встроенной поддержки нет.
- Требуется проверка существования email-адреса или домена — нужен внешний API или проверка по SMTP.
- Нужна международная валидация телефонов по форматам стран — лучше применять специализированные библиотеки на сервере или использовать API проверки.
- Необходима асинхронная или динамическая валидация во время набора — Google Forms не предоставляет live-валидацию.
Альтернативы:
- Google Apps Script: получить ответы, выполнять дополнительную валидацию и уведомлять автора формы / блокировать некорректные записи.
- Внедрять форму на сайт и валидировать на стороне клиента с помощью JavaScript, затем отправлять данные в Google Forms или напрямую в бекэнд.
- Использовать специализированные сервисы форм (Typeform, JotForm) с более гибкой логикой валидации и интеграциями.
Мини-методология проектирования валидации
- Определите, какие поля критичны и какие проверки минимально необходимы (формат, длина, диапазон).
- Для каждого критичного поля пропишите правило в одной фразе (например: “Email — корректный формат; мобильный — 10 цифр; чекбоксы — ровно 3”).
- Выберите комбинацию встроенных правил (Number/Text/Length/Regex/Checkbox) и добавьте пользовательские сообщения.
- Составьте тест-кейсы (см. ниже) и проверьте граничные значения и негативные сценарии.
- Если правило нельзя выразить средствами Google Forms, запланируйте Apps Script или внешнюю обработку.
Чек-листы по ролям
Чек-лист владельца формы (Form owner):
- Определил критичные поля и типы валидации.
- Настроил пользовательские сообщения об ошибках для всех правил.
- Проверил граничные значения и распространённые опечатки.
- Описал в инструкции для участников допустимые форматы (если сложные).
Чек-лист тестировщика (QA):
- Тестовые ответы проходят для валидных данных.
- Негативные сценарии отклоняются с корректным сообщением.
- Проверены локальные различия (например, формат дат или телефонов).
- Проводится тест суммарной нагрузки (если ожидается много ответов).
Чек-лист участника (короткое руководство в форме):
- Убедитесь, что вы вводите email в формате name@example.com.
- Не используйте пробелы в полях, где требуется число или код.
- Если система просит ровно N ответов, используйте не больше/не меньше.
Тест-кейсы и критерии приёмки
Критерии приёмки (пример для поля “Телефон”):
- Поле принимает только цифры; символы ‘+’, ‘(‘, ‘)’ и пробелы отклоняются, если правило требует 10 цифр подряд.
- Для валидных номеров с 10 цифрами ответ принимается и сохраняется.
- Для номеров меньше или больше 10 цифр появляется пользовательское сообщение и ответ не принимается.
Примеры тест-кейсов:
- Ввод: 9123456789 → Ожидается: Принятие.
- Ввод: +7 912 345 6789 → Ожидается: Отклонение (при требовании ровно 10 цифр).
- Ввод: abcdef → Ожидается: Отклонение с сообщением «Должно быть числом» или вашим текстом.
- Граничный тест для диапазона 1–100: ввод 1 и 100 должны приниматься; 0 и 101 — отклоняться.
Полезный шпаргалка по регулярным выражениям (шорт-лист)
- Проверка только цифр: ^\d+$
- Ровно 10 цифр: ^\d{10}$
- Email (упрощённо): ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$
- URL (упрощённо): ^https?://.+
Примечание: Google Forms ожидает шаблон в обычном синтаксисе регулярных выражений. Вставляйте экранирование как в примерах.
Примеры ошибок и способы их устранения
Ошибка: участник вводит число с запятой (7,5), а валидация требует целое число. Решение: либо измените сообщение об ошибке, пояснив формат, либо используйте Regex для целых чисел: ^\d+$.
Ошибка: шаблон регулярного выражения не работает как ожидалось (например, “fe” выдает неожиданные совпадения). Решение: проверьте смысл метасимволов и используйте тестеры RE; для «начинается на f и заканчивается на e» используйте ^f.e$.
Ошибка: нужна валидация, зависящая от других ответов (например, сумма полей не более 100). Решение: используйте Google Apps Script для пост-обработки ответов и уведомления автора формы.
Быстрая диаграмма принятия решения (какую валидацию выбрать)
flowchart TD
A[Начало: какое поле?] --> B{Тип поля}
B -->|Число| C[Number: Is number / > / < / Between]
B -->|Текст / Email / URL| D[Text: Contains / Email / URL]
B -->|Длина / код| E[Length: min / max]
B -->|Сложный шаблон| F[Regular Expression]
B -->|Чекбокс| G[Checkbox: Select at least / at most / exactly]
C --> H[Добавить пользовательское сообщение и тесты]
D --> H
E --> H
F --> H
G --> H
H --> I{Нужна межполевая логика?}
I -->|Да| J[Использовать Apps Script или внешний бекэнд]
I -->|Нет| K[Опубликовать и мониторить ответы]Риски и рекомендации по безопасности и конфиденциальности
- Не храните в открытом виде чувствительные данные (пароли, полные номера карт) в формах. Google Forms не предназначены для обработки платёжных данных.
- Если собираете персональные данные, укажите цель сбора и срок хранения, соблюдая требования локального законодательства о защите данных.
- При отправке данных на внешние сервисы (API для валидации) проверьте политику конфиденциальности внешнего провайдера.
Короткое резюме
Response Validation в Google Forms — быстрый способ повысить качество входящих ответов без программирования. Для простых проверок (числа, email, длина, чекбоксы, регулярные выражения) используйте встроенные правила и понятные сообщения об ошибках. Для межполей или более глубокой проверки планируйте Apps Script или внешнюю обработку.
Важно: тестируйте все граничные и негативные случаи до публикации формы.
Ключевые ресурсы для практики: встроенные поля Google Forms, онлайн-тестеры регулярных выражений, Google Apps Script для расширенной логики.
Похожие материалы
Как включить светлую тему в Discord
Цитирование текста в Discord: быстро и просто
Бег на Apple Watch: настройка и кастомизация
Включение режима разработчика в Discord
Защитите секции OneNote паролем