php - проверить, есть ли в строке адреса почтовый индекс

Я пытаюсь использовать регулярные выражения, чтобы проверить, содержит ли строка полного адреса почтовый индекс, кто-то может мне помочь?

$address = '10100 Trinity Parkway, 5th Floor Stockton, CA 95219';
if (preg_match('--regex_here--',$ad)) {
    echo 'true';
}

1 ответ

Решение

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

/\b[A-Z]{2}\s+\d{5}(-\d{4})?\b/

Объяснение:

\b         # word boundary
[A-Z]{2}   # two letter state code
\s+        # whitespace
\d{5}      # five digit zip
(-\d{4})?  # optional zip extension
\b         # word boundary

Вы также можете изменить \b в конце $ так как почтовые индексы обычно (всегда?) в конце адреса.

Другие вопросы по тегам