javascript中的mac地址验证(00:00:00:00:00:00)

mac-address-validation in javascripts (00:00:00:00:00:00)

本文关键字:验证 中的 mac 地址 javascript      更新时间:2023-09-26

任何人都可以发送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抛出异常。

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);
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

哦,如果我们要回答关于验证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;
}

我认为,虽然其他答案都是有效的,但它们错过了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 

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

我的答案是:

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