正则表达式的MAC地址

时间:2016-04-18 15:07:31

标签: javascript regex

我有以下内容,我用来检查有效的MAC地址

function isMacValid(mac) {
    var regexMac = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/i
    return regexMac.test(mac);
}

这适用于匹配由连字符或冒号分隔的6个十六进制值的标准的MAC地址... 1a:2b:3c:4d:5e:6fe7-f8-90-0a-1b

我现在需要考虑另一个只有6套十六进制且没有分隔符的非标准符号...所以1a2b3c4d5e6f是可以接受的。我现在如何制作:或 - 可选?

2 个答案:

答案 0 :(得分:2)

您可以使用[:-]?代替[:-]

唯一的问题是1a:2b:3c:4d:5e6f和1a-2b:3c:4d:5e:6f将通过检查。所以为了避免这种情况,我建议你改变:

var regexMac = /^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/i

var regexMac = /^((([0-9A-F]{2}:){5})|(([0-9A-F]{2}-){5})|([0-9A-F]{10}))([0-9A-F]{2})$/i

它不那么美丽但是有效

答案 1 :(得分:0)

var regexMac = /^([0-9a-fA-F]{2}\W){6}$/i