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

0

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

если $ postcode.length> 0 и $ postcode.length <10 AND $ postcode первый символ - это буква и (второй или третий символ - это число), то это соответствует.

Я придумал следующее регулярное выражение:

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

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

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

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

  • 0
    Так в чем же вопрос?
  • 0
    обновил мой вопрос.
Теги:
postal-code

2 ответа

5
Лучший ответ

Здесь шаблон:

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

Демо.

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

  • 1
    Спасибо! Я просто должен был изменить его на {0,8} и работал с логикой.
  • 0
    К сожалению, я по ошибке прочитал <= 10 вместо < 10 .
1

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню