1

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

4

5 回答 5

3
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);
于 2014-04-23T08:08:02.003 回答
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
于 2013-08-20T13:34:03.767 回答
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;
}
于 2013-08-20T13:42:33.603 回答
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 

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

于 2015-06-06T12:23:46.173 回答
-1

我的回答是:

^([0-9a-fA-F]{2}[:-]){5}[0-9a-fA-F][1-9a-eA-E]$
于 2013-08-20T13:33:56.787 回答