从JavaScript中的string中提取MAC地址
我有一个node.js应用程序,需要从string中提取MAC地址。
var str = "bridge=vmbr1,virtio=32:65:63:62:36:35";
问题在于string是dynamic的 – 它并不总是以这种格式。 它也可能显示为…
var str = "bridge=vmbr1,virtio=32:65:63:62:36:35,firewall=1";
…之间的许多其他变化。 出于这个原因,使用像split或者substring这样的东西是行不通的。 我想我可能需要使用一些正则expression式来提取string中的32:65:63:62:36:35
部分。
任何帮助表示赞赏。
/([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/
正则expression式匹配标准组mac公开列表 IEEE Std 802.1D和IEEE Std 802.1Q保留地址。
用于以人性化的forms打印MAC-48地址的标准(IEEE 802)格式是六个组 ,由
two hexadecimal digits
,用连字符或冒号分隔:
string = "bridge=vmbr1,virtio=32:65:63:62:36:35,firewall=1"; result = string.match(/([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/); document.write(result[0])
尝试这个:
str = "bridge=vmbr1,virtio=32:65:63:62:36:35,firewall=1"; str.match(/([0-9A-F]{2}:?){6}/g); // output // ["32:65:63:62:36:34"]
这甚至可以在单个string中使用多个MAC。
str = "bridge=vmbr1,virtio=32:65:63:62:36:35,firewall=1,foo=32:65:63:62:36:39,bar=32:65:63:62:36:38"; str.match(/([0-9A-F]{2}:?){6}/g); // output // ["32:65:63:62:36:34","32:65:63:62:36:39","32:65:63:62:36:38"]