Найти PO BOX внутри адреса / строки - PullRequest
2 голосов
/ 29 октября 2019

Я недавно сделал это регулярное выражение для проверки адресов AFO, DPO, FPO и обычных почтовых ящиков:

/(^[afd].*?|^)(((p[\s\.]?[o\s][\.]?)\s?)|(post\s?office\s?))((box|bin|b\.?)?\s?(num|number|#)?\s?\d+)/

Он работал отлично, пока пользователь не вставил "13605 NE 245th Lane ИЛИА / я 55 "по адресу ул. USPS считает это действительным адресом, но, к сожалению, это не помогает моему Regex. Я не могу понять, как изменить регулярное выражение, чтобы поймать почтовый ящик в адресе, когда пользователь сначала указывает свой обычный почтовый адрес, а второй - почтовый ящик. Это ловит это, когда это наоборот.

Есть идеи, как изменить регулярное выражение для учета этой новой ситуации, а также сохранить его текущие функциональные возможности? Я открыт для других предложений или, возможно, даже с использованием двух разных регулярных выражений. Благодарю.

1 Ответ

0 голосов
/ 30 октября 2019

Попробуйте:

/([afd]?)(((p[\s\.]?[o\s][\.]?)\s?)|(post\s?office\s?))((box|bin|b\.?)?\s?(num|number|#)?\s?\d+)/i

удалить ^, поскольку PO box 55 не находится в начале адресной строки

Пример:

Regular expression visualization

Демо Debuggex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...