任何人都可以发送javascript代码来验证网络mac地址(例如02:41:6d:22:12:f1
)它接受00:00:00:00:00:00
到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
抛出异常。
答案 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]$