Validator.js предоставляет набор утилит для проверки строковых
значений на соответствие формальным форматам, и
isMACAddress относится к группе методов валидации сетевых
идентификаторов. MAC-адрес (Media Access Control address) используется
для уникальной идентификации сетевых интерфейсов на канальном уровне и
обычно представлен в виде шестибайтной последовательности.
Метод isMACAddress применяется для проверки строки на
соответствие допустимому формату MAC-адреса с учётом различных
стандартов представления и уровней строгости.
isMACAddress(str [, options])
Возвращаемое значение:
true — строка соответствует MAC-адресуfalse — строка не соответствует форматуВалидация охватывает несколько распространённых форм представления:
01:23:45:67:89:ab
01-23-45-67-89-AB
0123.4567.89ab
0123456789ab
Поддержка конкретного формата зависит от параметров вызова.
{ no_separators: true }
Ограничивает проверку только строками без разделителей.
Пример:
isMACAddress('0123456789ab', { no_separators: true }) // true
isMACAddress('01:23:45:67:89:ab', { no_separators: true }) // false
{ eui: '48' } // или '64'
Определяет тип адреса:
Пример:
isMACAddress('01:23:45:67:89:ab', { eui: '48' }) // true
isMACAddress('01:23:45:67:89:ab:cd:ef', { eui: '48' }) // false
isMACAddress('01:23:45:67:89:ab:cd:ef', { eui: '64' }) // true
Метод не чувствителен к регистру символов A–F:
isMACAddress('01:23:45:67:89:AB') // true
isMACAddress('01:23:45:67:89:ab') // true
К невалидным значениям относятся:
null (в зависимости от предварительной
обработки библиотеки)Примеры:
isMACAddress('01:23:45:67:89') // false (неполная длина)
isMACAddress('01:23:45:67:89:zz') // false (недопустимые символы)
isMACAddress('01:23-45:67:89:ab') // false (смешанные разделители)
Метод не преобразует входные данные, а только проверяет их соответствие. Любая нормализация (например, приведение к нижнему регистру или удаление разделителей) должна выполняться отдельно.
const mac = '00:1A:2B:3C:4D:5E';
if (isMACAddress(mac)) {
console.log('Корректный MAC-адрес');
}
const valid = isMACAddress('00-1A-2B-3C-4D-5E', { eui: '48' });
function validateDevice(data) {
return isMACAddress(data.mac, { eui: '48' });
}
Разные системы используют разные разделители, и без учёта этого параметра возможны ложные отрицания.
isMACAddress('01-23-45-67-89-ab') // false при ожидании ':' формата
EUI-64 адреса часто путают с расширенными MAC-адресами, что приводит к ошибочной валидации.
Метод не предназначен для сетевых адресов уровня IPv4/IPv6, несмотря на схожесть синтаксических паттернов.
| Режим | Пример | Результат |
|---|---|---|
| Без опций | 01:23:45:67:89:ab |
true |
no_separators |
0123456789ab |
true |
eui: '48' |
01:23:45:67:89:ab |
true |
eui: '64' |
01:23:45:67:89:ab |
false |
Валидация MAC-адресов используется в:
isMACAddress часто используется совместно с:
isIP — проверка IP-адресов устройствisUUID — идентификация устройств в распределённых
системахisJSON — валидация структурированных конфигурацийПри построении пайплайнов валидации MAC-адрес обычно проверяется до нормализации данных, чтобы исключить лишние преобразования некорректных строк.
function validateNetworkRecord(record) {
if (!isMACAddress(record.mac, { eui: '48' })) {
return false;
}
return true;
}