检查 MAC 地址
网络接口的 MAC 地址 由 6 个以冒号分隔的两位十六进制数字组成。
例如:'01:32:54:67:89:AB'
。
编写一个检查字符串是否为 MAC 地址的正则表达式。
用例:
let regexp = /你的正则表达式/;
alert( regexp.test('01:32:54:67:89:AB') ); // true
alert( regexp.test('0132546789AB') ); // false (没有冒号分隔)
alert( regexp.test('01:32:54:67:89') ); // false (5 个数字,必须为 6 个)
alert( regexp.test('01:32:54:67:89:ZZ') ) // false (尾部为 ZZ)
一个两位的十六进制数可以用 [0-9a-f]{2}
(假设已设定修饰符 i
)进行匹配。
我们需要匹配数字 NN
,然后再重复 5 次 :NN
(匹配更多数字);
所以正则表达式为:[0-9a-f]{2}(:[0-9a-f]{2}){5}
现在让我们验证一下此匹配规则可以捕获整个文本:从开头开始,在结尾结束。这是通过将模式包装在 ^...$
中实现的。
最终:
let regexp = /^[0-9a-f]{2}(:[0-9a-f]{2}){5}$/i;
alert( regexp.test('01:32:54:67:89:AB') ); // true
alert( regexp.test('0132546789AB') ); // false (没有分号分隔)
alert( regexp.test('01:32:54:67:89') ); // false (5 个数字,必须为 6 个)
alert( regexp.test('01:32:54:67:89:ZZ') ) // false (尾部为 ZZ)