Регулярное выражение для украинского автомобильного номера

Помогите составить регулярку для украинского номера. Число должно быть четырехзначным, минимальная цифра 0001, максимальная 9999 Hазрешены 12 букв в латинском алфавите — А, В, С, Е, Н, I, К, М, О, Р, Т, Х.

Например для AA0000AА

Вот что получилось у меня: /^[АВCEHIKMOPTX]\d{2}(?<!0000)[АВCEHIKMOPTX]{2}$/ (Взял регулярку с российского номера, и поменял ее)


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

В вашем регулярном выражении А и Вв символьных классах кириллические, &#x0410; и &#x0412; соответственно.

Кроме того, \d{2} находит только две цифры, в номере же их четыре.

Используйте

^[ABCEHIKMOPTX]{2}\d{4}(?<!0{4})[ABCEHIKMOPTX]{2}$
^[ABCEHIKMOPTX]{2}(?!0{4})\d{4}[ABCEHIKMOPTX]{2}$

См. пример работы регулярного выражения. Схема:

введите сюда описание изображения

Подробности

  • ^ - начало строки
  • [ABCEHIKMOPTX]{2} - две латниские буквы из заданного набора
  • (?!0{4}) - следующие четыре символа не должны быть 0000
  • \d{4} - четыре цифры
  • (?<!0{4}) - предыдущие четыре символа не могут быть 0000
  • [ABCEHIKMOPTX]{2} - две латниские буквы из заданного набора
  • $ - конец строки.
→ Ссылка