回到课程
本资料仅提供以下语言版本:English。请 帮助我们 将其翻译为 简体中文 版本。

检验 MAC 地址

作为互联网接口的 MAC 地址 包括了 6 个以冒号 : 分隔的两位十六进制数。

举个例子:'01:32:54:67:89:AB'

请写一个能检查所有 MAC 地址的正则表达式。

用法:

let reg = /your regexp/;

alert( reg.test('01:32:54:67:89:AB') ); // true

alert( reg.test('0132546789AB') ); // false(缺少冒号)

alert( reg.test('01:32:54:67:89') ); // false(只有 5 个数字,必须是 6 个数字)

alert( reg.test('01:32:54:67:89:ZZ') ) // false(ZZ 不是合法的十六进制)

两位十六进制数的模式是 [0-9a-f]{2}(假设 i flag 已被启用)。

我们需要一个 NN 这种形式的数字,后面还需要五个 :NN 形式的数字。

最终的正则表达式是:[0-9a-f]{2}(:[0-9a-f]{2}){5}

现在让我们看看此模式如何匹配整个文本:从 ^ 处开始,到 $ 这里结束。通过将匹配模式包裹在 ^...$ 来完成的。

最终结果:

let reg = /^[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}$/i;

alert( reg.test('01:32:54:67:89:AB') ); // true

alert( reg.test('0132546789AB') ); // false(缺少冒号)

alert( reg.test('01:32:54:67:89') ); // false(只有 5 个数字,必须是 6 个数字)

alert( reg.test('01:32:54:67:89:ZZ') ) // false(ZZ 不是合法的十六进制)