Как ограничить ответ респондента
Данные, которые требуется получить от респондента, могут содержать разную информацию, но соответствовать определенному шаблону (например, номер телефона, адрес, номер паспорта, включая дату и место выдачи, и т.д.). Для сбора таких данных используйте блок Сбор данных с типом Регулярное выражение.
Настроить проверку данных на корректность. В поле Формат задайте формат данных. Например, для получения номера телефона в поле Формат укажите:
^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$
(данному формату соответствуют российские мобильные телефонные номера, а также городские с кодом из трех цифр). Респондент может указать номер телефона, начиная с +7 или 8, использовать пробелы, скобки, тире и пр. При этом cистема все равно квалифицирует номер телефона и сохранит его в результатах диалога, либо остановит бот, если пользователь написал сообщение, не содержащее номера телефона.Настроить маску ввода. В поле Маска укажите маску ввода данных. Поле многострочное, расширяется по мере ввода текста. Описание маски должно автоматически подставлять постоянные символы и контролировать вводимые значения (количество символов, набор символов, диапазон значений, порядок ввода). Если маска указана неверно, она не работает.
Маску ввода нужно указать в формате JSON, прописав для нее параметры (ключи) и их значения.
Warning | Все ключи и строковые значения указывайте в двойных кавычках – одинарные не работают |
mask
– маска или тип. Сейчас используется только один тип масок: IMask.MaskedRange" - диапазон числовых значений;lazy
– показывать подстановочный шаблон:true
– нет,false
– да;placeholderChar
– подстановочный символ, по умолчанию_
;blocks
– объект с отдельными паттернами подстановки;autofix
– автоисправление при работе с диапазоном:true
– да,false
– нет;maxLength
– длина маски: если меньше диапазона, то будут добавлены нули в начале;to
– верхняя граница диапазона (только числа);from
– нижняя граница диапазона (только числа).
mask
:0
– любая цифра;a
– любая буква;*
– любой символ;[]
– ввод значения на место символов в скобках не обязателен;{}
– фиксированная часть маски;`
– предотвращает смещение символов назад;определения должны отделаться от маски двойной обратной наклонной чертой – например,
\\0
.
Примеры:
{ "mask": "+{7}(000)000-00-00", "lazy": false, "placeholderChar": "_" }
{ "mask": "+{7}(000)000-00-00", "lazy": true, "placeholderChar": "_" }
{ "mask": "00 00 000000", "lazy": false, "placeholderChar": "_" }
{ "mask": "HH:mm", "lazy": false, "placeholderChar": "_", "blocks": { "HH": { "mask": "IMask.MaskedRange", "autofix": true "from": 0, "to": 23 }, "mm": { "mask": "IMask.MaskedRange", "autofix": true, "from": 0, "to": 59 } } }
Номер банковской карты
{ "mask": "0000 0000 0000 0000", "lazy": false, "placeholderChar": "_" }
{ "mask": "0000000000[00]", "lazy": false, "placeholderChar": "_" }
Более подробное описание масок ввода см. IMaskJS.
Warning | Заполняйте только одно из полей: Маска или Формат. Если маска и формат будут противоречить друг другу, это приведет к остановке диалога: бот будет запрашивать информацию по указанному формату, а респондент не сможет ее указать, т.к. ограничен маской ввода. |
Tip | Если вы используете блок Форма, для получения шаблонных данных добавьте поле и выберите тип Регулярное выражение. |