Регулярное выражение для конкретного правила

Мне нужно воссоздать эту логику с помощью регулярных выражений.

если $ postcode.length> 0 и $ postcode.length < 10 И
Первый символ $ postcode — это буква, а (второй или третий символ — это число), а затем совпадение.

Я придумал это регулярное выражение:

/ ((^ [A-Z] + [0-9]? [0-9]) {1,9} $) / я

Это должно соответствовать этим примерам:

  • B1 8PT
  • SW12 TQ1
  • B12 TYP
  • A1AAAAAAA
  • AA1AAAAAA

Отредактировано:
Мое текущее регулярное выражение не соответствует ни одному из примеров в списке. Я не могу понять, почему. Любая помощь будет оценена.

0

Решение

Вот образец:

^[A-Z](?=.?\d)[A-Z0-9 ]{0,8}$

демонстрация.

Я использовал взгляд (?=.?\d) проверить второй или третий символ, чтобы увидеть, если это цифра.

5

Другие решения

С чередованием:

/^[a-z](?:[0-9].{0,7}|.[0-9].{0,6})$/i
1

По вопросам рекламы [email protected]