JavaScript的MAC地址正则表达式

时间:2015-03-24 09:17:20

标签: javascript regex

我从这个Regex链接获得了Javascript正则表达式。但它的匹配也混合了MAC地址模式

/^([0-9a-f]{1,2}[\.:-]){5}([0-9a-f]{1,2})$/i

例如

AA-BB.CC.DD.EE.FF  

如上所述regex它的真实,但我想在整个mac地址匹配相同的量词。根据我的要求,上面的mac地址是错误的。

那么请帮助我如何匹配相同的量词。即点(。)找到5而不是混合模式相同的短划线( - )和冒号

4 个答案:

答案 0 :(得分:4)

如下所示更改正则表达式。

^[0-9a-f]{1,2}([\.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$

不区分大小写的修饰符i用于执行不区分大小写的匹配。

DEMO

> /^[0-9a-f]{1,2}([.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$/i.test('AA-BB.CC.DD.EE.FF')
false
> /^[0-9a-f]{1,2}([.:-])[0-9a-f]{1,2}(?:\1[0-9a-f]{1,2}){4}$/i.test('AA.BB.CC.DD.EE.FF')
true

答案 1 :(得分:4)

^[0-9a-f]{1,2}([\.:-])(?:[0-9a-f]{1,2}\1){4}[0-9a-f]{1,2}$

试试这个。看看演示。

https://regex101.com/r/tJ2mW5/12

答案 2 :(得分:4)

\b([0-9A-F]{2}[:-]){5}([0-9A-F]){2}\b

\b^$之类的锚点,匹配在一个名为"字边界的位置"。

[0-9A-F]是一个重复{2}次的字符集。在字符集:-之后,分组([0-9A-F]{2}[:-])重复{5}次,这给了我们ex:2F:3D:A9:B6:3F:。然后我们再次使用相同的字符集[0-9A-F]重复{2}次。

答案 3 :(得分:0)

提供的答案很好,但我会添加小写字母和点(。)分隔符。此外,每个位置只有一个字母或数字的MAC地址无效。

这是一个匹配数字,大写和小写字母的正则表达式,检查每个位置的两个字符,并允许使用分号(:),短划线( - )或点(。)作为分隔符。

^([0-9a-fA-F]{2}[:.-]){5}[0-9a-fA-F]{2}$ 

下面的正则表达式也将匹配没有分隔符的MAC地址(即像AABBCCDDEEFF这样的MAC地址),因为有些供应商代表没有分隔符的MAC地址。

^([0-9a-fA-F]{2}[:.-]?){5}[0-9a-fA-F]{2}$