Во фронтенде часто попадаются сложные формы. Создавая их, мы хотим, чтобы пользователю было удобно все заполнять. Числа нужно правильно форматировать, чтобы с первого взгляда было видно, что нет лишнего нолика. Когда вводишь номер кредитной карты, сверять его удобно блоками по 4 цифры, как он напечатан на пластике. Пользователь может вбивать номер телефона, дату рождения, номер паспорта и тому подобное — существует масса случаев, когда пользовательский ввод нужно форматировать на лету. Этим занимается маска.
Найти хорошее решение данной задачи — дело непростое. Часто библиотеки маскирования могут разочаровывать как разработчиков, так и пользователей. Общие проблемы включают скачущий курсор, трудности с добавленными символами, такими как дефисы или скобки, автозаполнение браузера, ошибки в серверной отрисовке и запутанный API.
Нас эти проблемы тоже не обошли стороной, и в какой-то момент мы взялись за разработку собственного решения. Сегодня я хотел бы рассказать, почему оно заслуживает вашего внимания.