MAC 地址的正则表达式

Myc*_*ych 3 javascript regex

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

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

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

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

rsa*_*bir 5

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

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

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

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

它不太漂亮但有效