javascripts中的mac-address-validation(00:00:00:00:00:00)

时间:2013-08-20 13:09:22

标签: javascript

任何人都可以发送javascript代码来验证网络mac地址(例如02:41:6d:22:12:f1)它接受00:00:00:00:00:00ff:ff:ff:ff:ff:ff的值。在文本框的按键事件上,我需要允许字符0-9a-f:(冒号)。到目前为止我所拥有的是

macPattern = /^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F]{2}$/i;

有了这个,我可以抛出ff:ff:ff:ff:ff:ff的异常,但我还需要为00:00:00:00:00:00抛出异常。我的模式并没有抛出异常。

请你给我一个模式,通过该模式我可以为ff:ff:ff:ff:ff:ff00:00:00:00:00:00抛出异常。

5 个答案:

答案 0 :(得分:2)

var MACAddress = document.getElementById("MACAddress");
var MACRegex=new RegExp("^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$");
MACRegex.test(MACAddress);

答案 1 :(得分:1)

var re = /^(?!(?:ff:ff:ff:ff:ff:ff|00:00:00:00:00:00))(?:[\da-f]{2}:){5}[\da-f]{2}$/i;
//               ^------------blacklist------------^  ^----------pattern---------^
re.test('ff:ff:ff:ff:ff:ff'); // false
re.test('ff:ff:ff:ff:ff:fe'); // true
re.test('00:00:00:00:00:00'); // false
re.test('00:00:00:00:00:01'); // true
// and of course
re.test('00:00:00:00:01'); // false
re.test('00:00:00:00:00:0g') // false

答案 2 :(得分:0)

哦,如果我们回答关于验证mac的问题,这是我的:但是这仍然没有回答这个问题:如何防止不构成mac地址的字符。

function isValidMac(mac) {
  var a = mac.split(':');
  if (a.length !== 6) {
    return false;
  }
  for (var i=0; i<6; i++) {
    var s = "0x"+a[i];
    if (s>>0 === 0 || s.length != 4) {
      return false;
    }
  }
  return true;
}

答案 3 :(得分:0)

我认为虽然其他答案都是有效的,但他们错过了OP问题的关键方面。 虽然在这种情况下这可能并不重要,但我相信可以改进用户体验。

我建议;

-validating length =12
-accepting {0-9,a-f,A-F},
-alert {g-z,G-Z)   (invalid character)
-ignore all others  (including Tab, cr, lf, crlf)
-confirm exit after the 12th character
-display 3 forms; raw, couplet, quad 

我还没有机会编码,但会在完成时提交和修改

答案 4 :(得分:-1)

我的回答是:

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