Я использую следующее регулярное выражение для проверки MAC-адресов:
pattern("^([a-fA-f0-9]){12}(,\s*([a-fA-f0-9]){12})*$")
, и оно отлично работает для следующих входных данных:
12aeabc11bba,662baea1abc2
Я хотел бы улучшить его для поддержкиследующие стили MAC-адреса:
12-ae-ab-c1-1b-ba,66-2b-ae-a1-ab-c2
12ae-abc1-1bba,662b-aea1-abc2
12:ae:ab:c1:1b:ba,66:2b:ae:a1:ab:c2
12ae:abc1:1bba,662b:aea1:abc2
12aeabc11bba,662baea1abc2
Для Regex не требуется поддержка следующих стилей MAC-адреса, однако, если Regex разрешает это, то все в порядке:
12:ae:ab:c1:1b:ba,66-2b-ae-a1-ab-c2
2134:12:12:1234,ae-12-ae-42-62-ae
ae12-bc33-a122,fe12:ae12:ab54
ae12:bc33-a122
IЯ использую Angular5
, и эта проверка передается в проверку FormBuilder
, поэтому я не думаю, что могу использовать несколько шаблонов.
this.requestForm = this.fb.group({
macAddresses: ['', [Validators.required, Validators.pattern("^([a-fA-f0-9]){12}(,\s*([a-fA-f0-9]){12})*$")]]
});
Может кто-нибудь помочь решить проблему?
Тот, кто ответит на этот вопрос самым чистым решением, получит награду в размере 100 представителей