Задача [#7750]: Маска ввода для полей форм

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

Решение: необходимо реализовать новую опцию «Маска ввода» для компонента форм «Однострочное поле»:

Рисунок 249. Маска ввода

Маска ввода

Маска ввода определяет, какие символы и сколько может быть введено в «Однострочное поле». Общее количество символов, которое может быть введено в поле, строго равно количеству символов маски ввода (за исключением escape-символов \).

Маска ввода представляет собой строку, состоящую из обычных символов (литералов) и метасимволов. Каждый метасимвол маски ввода определят класс символов, один из которых может быть введён в то место поля, где расположен метасимвол. Список поддерживаемых метасимволов:

Для того, чтобы вставить в маску ввода метасимвол в качестве литерала, необходимо предварить его escape-символом \ (обратная косая черта). Для вставки косой обратной черты как литерала необходимо использовать конструкцию \\ (двойная обратная косая черта).

В «Однострочном поле» с активированной и настроенной «Маской ввода» литералы отображаются как есть, их нельзя изменить или удалить. Метасимволы отображаются в виде _ (подчёркивание). Вместо метасимволов можно вводить только те символы, которые попадают в класс метасимвола.

Примеры:

  • (###) ###-##-## — маска ввода для телефонного номера в Казахстане. Ей соответствуют такие номера, как (727) 333-47-47, (721) 394-03-42 и так далее.

  • LL## ** **** **** **** ** — маска ввода для IBAN (Казахстан).