MAC-адрес в прикладных интерфейсах ввода представляет собой строковый идентификатор фиксированного формата, состоящий из 6 октетов, обычно записываемых в шестнадцатеричном виде. В пользовательских формах он используется для идентификации сетевых устройств, фильтрации оборудования, регистрации сетевых интерфейсов и системной валидации аппаратных параметров.
На уровне интерфейса ввода MAC-адрес характеризуется строгой структурой:
: или - или отсутствие
разделителей0-9, A-F,
a-fТипичные формы представления:
00:1A:2B:3C:4D:5E00-1A-2B-3C-4D-5E001A2B3C4D5EБиблиотека Inputmask предоставляет механизм описания шаблонов ввода через маски, псевдонимы (aliases) и регулярные выражения. MAC-адрес в рамках Inputmask обычно задаётся как комбинация шестнадцатеричных символов и фиксированных разделителей.
Базовая структура маски строится из повторяющихся блоков:
Наиболее распространённый формат —
XX:XX:XX:XX:XX:XX.
В Inputmask это выражается через последовательность символов
h (hex) и литералов:
Inputmask({
mask: "hh:hh:hh:hh:hh:hh",
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "upper"
}
}
}).mask(element);
В этой конфигурации:
hh описывает один октет: фиксированный разделительvalidator ограничивает ввод шестнадцатеричными
символамиcasing: "upper" приводит ввод к верхнему региструАльтернативное представление часто используется в Windows-средах:
XX-XX-XX-XX-XX-XX
Конфигурация Inputmask аналогична, изменяется только литерал разделителя:
Inputmask({
mask: "hh-hh-hh-hh-hh-hh",
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "upper"
}
}
}).mask(element);
Разделитель является частью синтаксиса маски и не участвует в валидации символов.
Форма без разделителей используется в системах, где MAC-адрес хранится как 12-символьная строка:
001A2B3C4D5E
Для Inputmask применяется линейная маска:
Inputmask({
mask: "hhhhhhhhhhhh",
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "upper"
}
}
}).mask(element);
Здесь отсутствуют визуальные разделители, а структура определяется исключительно количеством символов.
MAC-адрес часто поддерживает несколько форматов одновременно. В Inputmask это реализуется через массив масок:
Inputmask({
mask: [
"hh:hh:hh:hh:hh:hh",
"hh-hh-hh-hh-hh-hh",
"hhhhhhhhhhhh"
],
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "upper"
}
}
}).mask(element);
Такая конфигурация допускает ввод данных в разных стилях при единой логике валидации.
Сетевые идентификаторы не чувствительны к регистру, однако в интерфейсах ввода часто применяется нормализация.
Параметр casing управляет преобразованием символов:
"upper" — приведение к верхнему регистру"lower" — приведение к нижнему региструПример нормализации:
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "lower"
}
}
В случаях, когда требуется строгая проверка формата без поэтапного ввода, применяется regex-режим Inputmask:
Inputmask({
regex: "([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})"
}).mask(element);
Регулярное выражение описывает:
XX: или XX-XXInputmask для MAC-адресов реализует поэтапную валидацию:
Placeholder обычно отображает ожидаемую структуру:
_ или • как заполнительПоведение placeholder определяется параметром
placeholder:
Inputmask({
mask: "hh:hh:hh:hh:hh:hh",
placeholder: "_",
definitions: {
h: {
validator: "[0-9A-Fa-f]",
casing: "upper"
}
}
}).mask(element);
Заполнитель формирует визуальный шаблон фиксированной длины даже при отсутствии введённых данных.
При вставке MAC-адресов из буфера обмена Inputmask выполняет нормализацию:
casingСтрока вида:
00-1a-2b-3c-4d-5e
преобразуется в:
00:1A:2B:3C:4D:5E при соответствующей конфигурации.
Валидация символов осуществляется на уровне
definitions:
definitions: {
h: {
validator: "[0-9A-Fa-f]"
}
}
Любой ввод вне диапазона шестнадцатеричных символов блокируется до попадания в модель значения.
В системах учёта сетевых интерфейсов встречаются дополнительные ограничения:
Inputmask не реализует семантическую валидацию MAC-адреса, однако может сочетаться с внешней проверкой, сохраняя форматный контроль на уровне ввода.
MAC-адрес как поле формы обычно привязывается к DOM-элементу input. Маска применяется на этапе инициализации компонента, после чего поведение поля полностью управляется Inputmask:
При использовании масок MAC-адресов проявляются следующие ограничения:
Эти ограничения компенсируются внешними валидаторами и серверной проверкой данных.