// Lodash's castArray function will turn `undefined` into `[undefined]`, but we want an empty array in that case. function safeCastArray(value) { if (value) { return castArray(value); } else { return []; } }
function compareMac (mac = '', macPattern) { const macPatterns = castArray(macPattern).map((p) => { return new RegExp('^' + p.replace(/[^A-Za-z0-9?*]/g, '') .replace(/[?]/g, '.') .replace(/[*]/g, '.*') .toUpperCase() + '$'); }); const normalizedMac = normalizeMac(mac); return (macPatterns.findIndex((p) => p.test(normalizedMac)) !== -1); }