请教各位,这个函数应该如何修改才能更加完善?

handsomekyle 2013-03-14 01:31:58

function macFormCheck(mac) {
var macs = new Array();
macs = mac.split("_");
if(macs.length != 6){
alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)! ");
isOK = 0 ;
return null ;
}
for (var s=0; s<6; s++) {
var temp = parseInt(macs[s],16);
if(macs[s].length > 2 ||macs[s].length < 2 )
{
alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)! ");
isOK = 0 ;
return null ;
}
if(isNaN(temp))
{
alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)! ");
isOK = 0 ;
return null;
}
if(temp < 0 || temp > 255 )
{
alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)! ");
isOK = 0 ;
return null ;
}
}
isOK = 1 ;
return mac;
}


代码如上,我是想做一个检查输入的MAC地址合法性的函数,但是判断功能不是很完善。
请教各位应该如何修改。
...全文
113 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kilin_Zhang 2013-03-14
  • 打赏
  • 举报
回复
/^(?:[\da-f]{2,2}-){7,7}[\da-f]{2,2}$/i
likeajin 2013-03-14
  • 打赏
  • 举报
回复
引用 6 楼 handsomekyle 的回复:
引用 2 楼 likeajin 的回复:JavaScript code?12345678function macFormCheck(mac) { mac = mac + ''; if(/^[A-F\d]{2}(_[A-F\d]{2}){5}$/.test(mac))return mac; alert("The MAC you input is inval……
正则错了。 /^[A-F\d]{2}(_[A-F\d]{2}){5}$/i 注意d前面的\,估计是转义字符引起错误
handsomekyle 2013-03-14
  • 打赏
  • 举报
回复
引用 2 楼 likeajin 的回复:
JavaScript code?12345678function macFormCheck(mac) { mac = mac + ''; if(/^[A-F\d]{2}(_[A-F\d]{2}){5}$/.test(mac))return mac; alert("The MAC you input is invalid!Please input a ma……
函数的使用我是这么使用的

function macFormCheck() {
   with ( document.forms[0] ) { 
    	var mac = MAC.value + '';
    	if(/^[A-Fd]{2}(_[A-Fd]{2}){5}$/i.test(mac))return true; 
    	alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)!"); 
    	return false ;
	  }
}
为什么我输入一个11_22_33_44_55_55,却总是走到提示那一步呢?
handsomekyle 2013-03-14
  • 打赏
  • 举报
回复
引用 4 楼 likeajin 的回复:
引用 2 楼 likeajin 的回复:JavaScript code?12345678function macFormCheck(mac) { mac = mac + ''; if(/^[A-F\d]{2}(_[A-F\d]{2}){5}$/.test(mac))return mac; alert("The MAC you input is inval……
感谢! 这个正则表达式还真是好用、、、回头我得买一本JS的书好好看看
likeajin 2013-03-14
  • 打赏
  • 举报
回复
引用 2 楼 likeajin 的回复:
JavaScript code?12345678function macFormCheck(mac) { mac = mac + ''; if(/^[A-F\d]{2}(_[A-F\d]{2}){5}$/.test(mac))return mac; alert("The MAC you input is invalid!Please input a ma……
如果字母可以是小写,把正则表达式/^[A-F\d]{2}(_[A-F\d]{2}){5}$/改为: /^[A-F\d]{2}(_[A-F\d]{2}){5}$/i
handsomekyle 2013-03-14
  • 打赏
  • 举报
回复
引用 1 楼 knightzhuwei 的回复:
你是觉得哪里不完善呢
我发现当我输入的结尾是f和一个超过f的字母的组合时 没有判断出来
likeajin 2013-03-14
  • 打赏
  • 举报
回复

function macFormCheck(mac) {
    mac = mac + '';
    if(/^[A-F\d]{2}(_[A-F\d]{2}){5}$/.test(mac))return mac;
    alert("The MAC you input is invalid!Please input a mac like xx_xx_xx_xx_xx_xx (xx should be sexadecimal number)!");
    return null
};
var ms = ['00_0F_12_AF_FF_FE', 'ab_0F_12_AF_FF_FE', '001_0F_12_AF_FF_FE'];
for(var i = ms.length - 1; i >= 0; i--)alert(ms[i] + '\r\n' + macFormCheck(ms[i]))
knightzhuwei 2013-03-14
  • 打赏
  • 举报
回复
你是觉得哪里不完善呢

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧