我想要一個正則表達式來驗證以下MAC地址格式。將不同的正則表達式組合成一個來驗證不同的MAC地址格式
01-23-45-67-89-ab
或01-23-45-67-89-AB
01:23:45:67:89:ab
或01:23:45:67:89:AB
0123.4567.89ab
或0123.4567.89AB
ab
或AB
所有上述都是有效的MAC地址格式。
MAC地址應該包含全部大寫字母或來自集合[a-f A-F]
的所有英文字母的小寫字母(但不是兩個)。
目前我正在使用6 regex
模式,我已經使用or
進行驗證,這看起來不太好。
這是我的JavaScript代碼:
var value='01-23-45-67-89-ab';
var regex = new RegExp("^([0-9a-f]{2}){6}$");
var regex1 = new RegExp("^([0-9A-F]{2}){6}$");
var regex2 = new RegExp("^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$");
var regex3 = new RegExp("^([0-9a-f]{2}[:-]){5}([0-9a-f]{2})$");
var regex4 = new RegExp("^([0-9a-f]{4}[\\.]){2}[0-9a-f]{4}$");
var regex5 = new RegExp("^([0-9A-F]{4}[\\.]){2}[0-9A-F]{4}$");
if (regex.test(value) || regex1.test(value)|| regex2.test(value)|| regex3.test(value)|| regex4.test(value)|| regex5.test(value)){
return true;
}
else{
return false;
}
療法是一種更好的方式將它們全部結合起來,而無需使用or
? 我不太擅長regex
。 任何幫助,將不勝感激。
險要的混合情況下對用戶提供的值是一個壞主意。只要忽略大小寫差異。 – chrylis