JavaScript中匹配mac地址的正则表达式

网上看到一个java的正则匹配MAC的;

搞一个JS版本的,供以后可能会用到;

java版本的是

则表达式:

(1)”[A-Fa-f0-9][A-Fa-f0-9]-[A-Fa-f0-9][A-Fa-f0-9]-[A-Fa-f0-9][A-Fa-f0-9]-[A-Fa-f0-9][A-Fa-f0-9]-[A-Fa-f0-9][A-Fa-f0-9]-[A-Fa-f0-9][A-Fa-f0-9]”

这个表达式虽然看起来长,但是是逻辑最简单的,最容易理解的,也是完全正确的。A-F  a-f   0-9都表示其中的某一个,中间是“或”的关系。短横线-可以直接进行匹配。

(2)”[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}-[A-Fa-f0-9]{2}”

进行优化后,长度剪短了一半。{2}就是把前面的部分循环2次。在第一种方法的基础上,这也是容易理解的。

(3)”([A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}”

在(2)的基础上继续进行优化。把“[A-Fa-f0-9]{2}-“作为一个单元进行提取。{5}并循环5次,因为面·前面5个都是重复的,有很大压缩的空间。

上面是看到的JVVA版本的;

正则几乎是相同的;

配了一个JS版本的,方法如下

function CheckMac(val) {
//mac地址正则表达式
var reg_name=/([A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}/;
if(!reg_name.test(val)){
console.log("mac地址格式不正确!mac地址格式为00:24:21:19:BD:E4");
return false;
}
return true;
}
console.log(CheckMac("D4-3D-7E-E0-1D-5A"));//true
console.log(CheckMac("48-5D-60-61-3D-C5"));//true
console.log(CheckMac("48-013-60-61-3D-C5"));//false

下面是另一种正则的写法

function CheckMac(val) {
//mac地址正则表达式
//var reg_name=/([A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}/;
var reg_name=/^[A-F0-9]{2}(-[A-F0-9]{2}){5}$/;
if(!reg_name.test(val)){
console.log("mac地址格式不正确!mac地址格式为00:24:21:19:BD:E4");
return false;
}
return true;
}
console.log(CheckMac("D4-3D-7E-E0-1D-5A"));//true
console.log(CheckMac("48-5D-60-61-3D-C5"));//true
console.log(CheckMac("48-013-60-61-3D-C5"));//false

~END~

未经允许不得转载:WEB前端开发 » JavaScript中匹配mac地址的正则表达式

赞 (2)