Что такое маска ввода
Определение маски ввода
Если свойство Формат (Format) управляет тем, как данные отображаются в поле таблицы, то свойство Маска ввода (Input Mask) позволяет контролировать ввод данных в таблицу. И не только контролировать, но и упрощать процесс ввода. Маску используют в том случае, когда вводимые данные должны содержать определенные символы в некоторых позициях вводимой строки. Самым простым и ярким примером таких данных являются номера телефонов. Маска ввода должна обеспечить возможность вводить только цифры номера, а остальные символы (скобки вокруг кода города, дефис между цифрами номера) будут добавляться автоматически. Маска задается с помощью символов, приведенных в табл. 2.12.
Символ маски | Описание |
0 | В данную позицию должна быть введена цифра. Знаки плюс (+) и минус (-) не допускаются |
9 | В данную позицию должна быть введена цифра или пробел. Знаки плюс (+) и минус (-) не допускаются |
# | В данную позицию должна быть введена цифра, пробел, знаки плюс (+) или минус (-) |
L | В данную позицию должна быть введена буква |
? | В данную позицию может быть введена буква или пробел |
A | В данную позицию должна быть введена буква или цифра |
a | В данную позицию должна быть введена буква, цифра или пробел |
& | В данную позицию должен быть введен произвольный символ или пробел |
C | В данную позицию может быть введен произвольный символ или пробел. Если пользователь ничего не введет, Access не занесет в эту позицию никаких данных |
. (точка) | Десятичный разделитель (зависит от региональных установок в окне Язык и стандарты Панели управления Windows) |
, (запятая) | Разделитель групп разрядов (зависит от региональных установок в окне Язык и стандарты Панели управления Windows) |
-, / | Разделители в значениях даты и времени (зависят от региональных установок в окне Язык и стандарты Панели управления Windows) |
Преобразует все символы справа к верхнему регистру | |
! | Указывает, что маску нужно заполнять справа налево. Этот символ следует использовать в том случае, когда символы в левой части маски являются необязательными. Его можно помещать в любой позиции маски |
\ | Указывает, что следующий символ необходимо рассматривать в качестве постоянного символа, даже если он является специальным символом маски. Например, \А будет выводить в маске букву А |
«литерал» | Вместо того чтобы многократно использовать символ обратного слэша (\), можно просто заключить любой литерал в двойные кавычки |
Таблица 2.12. Символы для создания масок ввода
Для того чтобы сформировать маску ввода, можно использовать Мастера масок ввода (Input Mask Wizard). Откройте в режиме Конструктора таблицу «Заказы» (Orders). Выделите поле «Дата размещения». Чтобы ввести маску ввода для этого поля, щелкните мышью по ячейке свойства Маска ввода (Input Mask). Нажмите небольшую кнопку с тремя точками (рис. 2.21), которая появится справа (эта кнопка называется кнопкой Построителя и будет встречаться еще во многих местах), и дальше следуйте указаниям мастера:
Сформированная символьная строка маски отображается в поле Маска ввода (Input Mask) для поля «ДатаРазмещения» (OrderDate) (рис. 2.22). Маска ввода состоит из трех частей:
Что такое маска ввода
ВВЕДЕНИЕ
Данная заметка предназначена для тех, кто ищет простой и нормальный скрипт для маски телефонного номера. Почему это важно? Потому что зачастую пользователь сайта не понимает как именно и в каком формате вводить свой номер телефона, на подсказку внутри поля как правило никто не обращает внимания. Поэтому надо сделать так, чтобы он тупо вбивал цифры, а формат номера оставался неизменным. Об этом и речь
Что вы узнаете:
Что такое «паттерн» и что такое «маска»
Код выглядит примерно так:
Пример использования маски ввода
Введите свой номер телефона
Готовый скрипт для ввода телефонного номера
HTML код поля выглядит примерно так:
JS код скрипта:
Как подключить данный скрипт к Joomla
Скрипт подключается очень легко. Просто добавьте его в папку JS вашего шаблона, а в index.php там где подключаете скрипты добавьте строчку:
Кстати, на этом сайте я сразу же заменил все паттерны для телефонных номеров, все работает отлично на последней версии joomla. Само собой, что скрипт можно использовать не только на joomla, а где угодно.
Напоминаю, что вопросы можно задать в группе https://t.me/newqosgroup
Подписывайтесь на канал в Телеграм
Политика сайта
Помните что все статьи и мнения основаны на личном опыте группы людей, их мнение может не совпадать с общепринятым, либо с еще каким-нибудь другим мнением
Сайт не собирает абсолютно никакой конфиденциальной информации ни под каким предлогом
Сайт не поддерживает никакие меньшинства: радужных дней, флагов и прочей ерунды не будет
Как создать маску ввода для мобильных устройств
Sep 18, 2017 · 9 min read
Больше статтей и перевод в моем блоге DevKucher;
Представьте себе: вы сидите, думаете о своих делах, пишите код. И тут кто-то приходит и просит вас создать маску ввода для мобильных приложений с использованием чистого JavaScript (без внешних библиотек!).
И вы думаете, что создать маску ввода не так уж сложно. Все, что вам нужно сделать, это создать кучу функций для проверки ключа нажатой клавиши с помощью событий клавиатуры и отменять событие, ели ключ не разрешен. Что уж тут сложного может быть?
Мне потребовалось около 10 с е кунд, чтобы вспомнить, что события клавиатуры работают по-разному для разных устройств. Оказывается, найти решение для маски ввода которое будет работать в Android, iOS и Google Chrome было не так просто.
Знакомство с событиями клавиатуры
Позвольте мне познакомить вас с событиями клавиатуры. Они запускаются при нажатие на физическую или виртуальную клавишу:
Каждый раз, когда происходит взаимодействие с клавиатурой, событие предоставляет объекту информацию о самом взаимодействии. Например, какой ключ был нажат и физическое местоположение на клавиатуре. Вот некоторые из свойств, которые можно использовать для идентификации нажатой клавиши:
Android проблемы
Итак, теперь, когда мы знаем, что нужно для запуска события клавиатуры и как идентифицировать нажатую клавишу, у нас есть все необходимое для создания нужной валидации поля ввода. Правильно?
Но нет, дело в том, что Android-клавиатура не так проста. Когда я добавил событие keypress и показал свойства keyCode, я немного удивился: в Android не было события keypress.
Нажатие клавиши А верхнем регистре привело к следующим свойствах keyCode в браузерах:
Создание маски ввода для управления вводом данных
Маска ввода. Выбор между форматом и маской ввода
В Microsoft Access существует два свойства полей, изменение которых приводит к похожим результатам: свойство Формат поля и свойство Маска ввода.
Свойство Формат поля используется для отображения данных в постоянном формате. Например, если свойство Формат поля для полей типа Дата/Время установлен на Средний формат даты, то все вводимые данные будут отображаться в следующем формате: 12-янв-96. Если же пользователь базы данных введет число в виде 12.01.96 (или в другом определенном виде), то при сохранении записи формат даты будет преобразован в Средний формат даты.
При установке свойства Формат поля изменяется только отображение значения, однако данное свойство никак не влияет на хранение значения в таблице. Изменения в формате отображения применяются только после сохранения введенных данных, до этого момента определить, в каком формате были введены данные в поле, невозможно. Если же вводом данных необходимо управлять, в дополнение к формату отображения данных или вместо него следует использовать маску ввода. Если же требуется, чтобы данные отображались так, как они были введены, устанавливать свойство Формат поля не следует.
Для числовых, денежных, логических полей, а также полей Дата/время и Счетчика существуют встроенные форматы отображения. Для данных типов полей можно также установить специальные форматы. Для текстовых полей встроенных форматов нет, но для них можно указать специальные форматы.
Маска ввода обеспечивает соответствие данных определенному формату, а также заданному типу значений, вводимых в каждую позицию. Если для поля определены как формат отображения, так и Маска ввода, то при добавлении и редактировании данных используется маска ввода, а параметр Формат поля определяет отображение данных при сохранении записи. Если используется как свойство Формат поля, так и свойство Маска ввода, то следует следить за тем, чтобы результаты их действий не противоречили друг другу.
Синтаксис масок ввода
Описание маски ввода может состоять из трех разделов, разделенных знаком точка с запятой, например, (999) 000-0000!;0;» «.
В приведенной ниже таблице указано, как Microsoft Access интерпретирует символы, содержащиеся в первой части описания в свойстве Маска ввода. Чтобы включить в маску текстовые константы, отличные от представленных в таблице, в том числе символы и пробелы, следует просто ввести их в нужную позицию. Чтобы включить один из следующих символов в качестве текстовой константы, необходимо перед ним ввести символ обратной косой черты \.
Если пользователь определяет маску ввода и одновременно задает для того же поля значение свойства Формат поля, то при выводе данных приоритет имеет свойство Формат поля.Это означает, что при форматировании данных сохраненная маска ввода игнорируется. Данные в базовой таблице при этом не изменяются; свойство Формат поля определяет только режим отображения данных.
Примеры масок ввода
В приведенной ниже таблице указаны описания некоторых масок ввода и примеры значений, которые в них могут быть введены. В конце данного раздела снова обратитесь к таблице за сведениями о кодах, используемых для создания масок ввода.
Описание маски ввода | Примеры значений |
(000) 000-0000 | (206) 555-0248 |
(999) 999-9999! | (206) 555-0248 |
( ) 555-0248 | |
(000) AAA-AAAA | (206) 555-TELE |
#999 | -20 |
>L. L?000L0 | GREENGR339М3 |
МАЙ Р 452Ю7 | |
>L0L 0L0 | Т2Ф 8М4 |
00000-9999 | 98115- |
98115-3007 | |
>L LL00000-0000 | DB51392-0493 |
Создание маски ввода для управления вводом данных
Свойство Маска ввода можно установить только в режиме конструктора таблицы, режиме конструктора запроса или режиме конструктора формы. В большинстве случаев свойства устанавливаются для полей в режиме конструктора таблицы. В таком случае установленные свойства применяются к полю в режиме конструктора запросов, а также к элементам управления в формах и отчетах, присоединенных к данному полю (действует после установления свойств в режиме конструктора таблицы при создании элементов управления).
Управление форматами ввода данных с помощью масок ввода
Вы можете помочь пользователям правильно вводить данные в классические базы данных Access, подключив маски ввода к полям, имеющим строго определенный формат значений, например номера телефонов.
Маска влияет только на ввод значений в Access: она не меняет способ их хранения, который записи от типа данных поля и других свойств. Дополнительные сведения о хранении данных в Access см. в статье Введение в типы данных и свойства полей.
Важно: Эта статья относится только к классическим базам данных Access. Веб-приложения и веб-базы данных Access не поддерживают маски ввода.
В этой статье
Общие сведения о масках ввода
Маска ввода — это строка символов, указывающая формат допустимых значений входных данных. Маски ввода можно использовать в полях таблиц или запросов, а также в элементах управления форм и отчетов. Маска ввода хранится в свойствах объекта.
Маску ввода рекомендуется использовать, когда вводимые значения должны иметь единый формат, например для полей с номерами телефонов из десяти цифр. Если пользователь введет номер, не указав код города, данные не будут приняты в Access, пока пользователь не добавит код города.
Три компонента маски ввода
Маски ввода состоят из одного обязательного и двух необязательных компонентов, разделенных точками с запятой. Назначение каждого из компонентов описано ниже.
Первый компонент является обязательным. Он представляет собой знак или строку (последовательность знаков) маски с заполнителями и литералами, например круглыми скобками, точками и дефисами.
Второй компонент не является обязательным и определяет способ хранения встроенных знаков маски в поле. Если для этого компонента задано значение 0, знаки сохраняются вместе с данными, а если 1, то знаки отображаются без сохранения. Выбрав значение 1, можно сэкономить место для хранения базы данных.
Третий компонент маски ввода также не является обязательным и определяет знак, используемый в качестве заполнителя. По умолчанию в Access используется знак подчеркивания (_). Чтобы задать другой знак, введите его в третьем компоненте маски.
Пример маски ввода для телефонных номеров в формате России: (999) 000-00-00 ;0 ;-:
В маске используются два заполнителя — 9 и 0. Заполнитель 9 обозначает необязательные цифры (код города можно не вводить), а 0 — обязательные.
Значение 0 во втором компоненте маски ввода указывает на то, что знаки маски следует хранить вместе с данными.
Знаки, определяющие маски ввода
В приведенной ниже таблице перечислены заполнители и литералы, используемые в масках ввода, и описано их влияние на ввод данных.
Пользователь должен ввести цифру (от 0 до 9).
Пользователь может ввести цифру (от 0 до 9).
Пользователь может ввести цифру, пробел, знак «плюс» или «минус». Если ничего не ввести, будет вставлен пробел.
Пользователь должен ввести букву.
Пользователь может ввести букву.
Пользователь должен ввести букву или цифру.
Пользователь может ввести букву или цифру.
Пользователь должен ввести какой-либо знак или пробел.
Пользователь может ввести знаки или пробелы.
Разделитель целой и дробной части, групп разрядов, значений дат и времени. Выбираемый знак зависит от региональных параметров Windows.
Все последующие знаки будут переведены в верхний регистр.
Когда следует избегать использования масок ввода в Access
Маски ввода — это полезный инструмент, но он уместен не во всех случаях. Не используйте маски ввода, если верно одно из следующих утверждений.
Иногда может потребоваться ввести данные в формате, не соответствующему маске. Маска ввода не допускает исключений.
Планируется использовать элемент управления «Выбор даты» с полем даты и времени. Маски ввода несовместимы с таким элементом управления.
Добавление маски ввода в поле таблицы с помощью мастера масок ввода
Маски ввода можно использовать для полей с типом данных «Текстовый», «Числовой» (кроме кода репликации), «Денежный» и «Дата/время».
Примечание: Если применить маску ввода к полю с типом данных «Дата/время», для этого поля невозможно будет использовать элемент управления Выбор даты.
В области навигации щелкните таблицу правой кнопкой мыши и выберите в контекстном меню команду Конструктор.
Выберите поле, к которому необходимо применить маску ввода.
В разделе Свойства поля на вкладке Общие щелкните поле свойства Маска ввода.
Чтобы запустить мастер масок ввода, нажмите кнопку Построить .
Выберите нужный тип маски ввода из списка.
Щелкните поле Проба и введите данные, чтобы проверить работу маски.
Чтобы оставить маску ввода без изменений, нажмите кнопку Далее.
Выберите способ хранения данных.
Чтобы сохранить изменения, нажмите кнопку Готово.
Добавление маски ввода в запрос
В области переходов щелкните правой кнопкой мыши запрос, который требуется изменить, и выберите в контекстном меню команду Конструктор.
В бланке запроса установите курсор в столбец поля, которое требуется изменить.
Курсор можно поместить в любую строку для этого поля.
Нажмите клавишу F4, чтобы открыть окно свойств поля.
В разделе Свойства поля на вкладке Общие щелкните поле свойства Маска ввода.
Чтобы запустить мастер масок ввода, нажмите кнопку Построить . Следуйте инструкциям мастера.
Добавление маски ввода в элемент управления формы или отчета
В области переходов щелкните правой кнопкой мыши форму или отчет, которые требуется изменить, и выберите в контекстном меню команду Конструктор.
Щелкните правой кнопкой мыши элемент управления, который требуется изменить, а затем выберите в контекстном меню команду Свойства.
На вкладке Все щелкните поле свойства Маска ввода.
Чтобы запустить мастер масок ввода, нажмите кнопку Построить . Следуйте инструкциям мастера.
Создание настраиваемых масок ввода
В мастере предусмотрены маски ввода для наиболее распространенных вариантов форматирования, однако в некоторых случаях требуется настроить маску под особые нужды. Чтобы сделать это, можно либо изменить одну из предопределенных масок мастера ввода, либо вручную задать свойство «Маска ввода» для соответствующего поля.
Настройка масок ввода в мастере
Откройте объект в конструкторе и щелкните поле, к которому нужно добавить настраиваемую маску ввода.
Чтобы запустить мастер масок ввода, нажмите кнопку Построить .
Нажмите кнопку Изменить список.
Откроется диалоговое окно Настройка масок ввода.
Перейдите к новой записи в этом окне и введите новое описание в поле Описание.
В поле Маска ввода введите символы и заполнители с помощью разрешенных знаков из списка таблицы.
Щелкните стрелку списка Тип маски: и выберите подходящий тип маски.
Нажмите кнопку Закрыть. В списке появится новая маска ввода.
Настройка масок ввода в свойстве поля
В области навигации щелкните объект правой кнопкой мыши и выберите в контекстном меню команду Конструктор.
Выберите поле, для которого необходимо создать настраиваемую маску ввода.
В области «Свойства поля» щелкните поле Маска ввода и введите собственную маску.
Чтобы сохранить изменения, нажмите сочетание клавиш CTRL+S.
Для полей числового и денежного типов определение маски ввода задается вручную.
Примеры масок ввода
В таблице ниже приведены примеры использования масок ввода.
Обеспечивает ввод значения в виде
В данном случае пользователи должны вводить код города, так как в соответствующем разделе маски (000 в скобках) используется заполнитель 0.
(206) 555-0199
( ) 555-0199
В этом случае в области междугородного кода используется местозаполнитель 9, поэтому междугородные коды необязательны. Кроме того, восклицательный знак (!) обусловливает заполнение маски слева направо.
Предоставляется возможность заменить буквами четыре последних цифры телефонного номера в формате США. Обратите внимание на местозаполнитель 0 в области кода города, который делает междугородный код обязательным.
Любое положительное или отрицательное число, включающее не более четырех знаков и не имеющее разделителей тысяч и дробной части.
ЗЕЛЕНЫЙ339М3
МАЙ Р 452Б7
Сочетание обязательных (L) и необязательных (?) букв и обязательных цифр (0). Знак «больше» требует вводить все буквы в верхнем регистре. Чтобы использовать маску ввода этого типа, необходимо задать для типа данных поля таблицы значение Текстовый или Поле МЕМО.
Обязательный почтовый индекс и необязательная область четырехзначного расширения.
Сочетание обязательных букв и цифр, все в верхнем регистре. Данный тип маски ввода помогает, например, правильно вводить инвентарные номера или заполнять другие формы складского учета.
Использование масок ввода для адресов электронной почты
Поскольку адреса электронной почты могут быть самой разной длины, маски ввода не подходят для их проверки при вводе. Вместо масок ввода рекомендуется использовать свойства Правило проверки и Сообщение об ошибке.
Условие на значение, приведенное в таблице ниже, гарантирует, что адрес электронной почты будет состоять из одного или нескольких знаков, знака «@», еще одного или нескольких знаков, точки и еще одного или нескольких знаков. Например, адрес proverka@example.com будет правильным, а proverka@example,com или proverka@example — нет. Если ввести адрес электронной почты, не соответствующий условию на значение, введенные данные будут отклонены и появится сообщение, указанное в свойстве Сообщение об ошибке. Если свойство Сообщение об ошибке не задано, будет выведено стандартное сообщение.
Сообщение об ошибке (необязательно)
Введите адрес электронной почты со знаком «@» и полным именем домена (пример: frank@contoso.com).
Дополнительные сведения о применении правил проверки, а также пошаговые инструкции см. в статье Ограничение ввода данных с помощью правил проверки.