Лучшие стратегии для предотвращения адресов с почтовыми ящиками? - PullRequest
2 голосов
/ 11 ноября 2008

У меня есть клиент, который отправляет через UPS, и поэтому не может доставить его в почтовые ящики. Я хотел бы иметь возможность проверять поля адресов клиентов, чтобы они не могли вводить адреса, содержащие почтовый ящик. Было бы лучше, если бы это было реализовано как регулярное выражение, чтобы я мог использовать клиентский контроль проверки регулярных выражений (ASP.NET).

Я понимаю, что, вероятно, нет способа получить 100% обнаружение, я просто ищу что-то, что будет работать большую часть времени.

Ответы [ 9 ]

6 голосов
/ 11 ноября 2008

ИБП также имеет инструменты, которые вы можете интегрировать для этого ... чтобы вы могли точно проверить адрес относительно того, будут ли они отправляться, сколько будет стоить, расписания и т. Д. Я предлагаю посетить ИБП ИТ Страница решений для получения дополнительной информации.

3 голосов
/ 11 ноября 2008

Это должно помочь вам начать. Проверьте, соответствует ли поле адреса этому регулярному выражению.

"^P\.?\s?O\.?\sB[Oo][Xx]."

Перевод на английский: это P в начале строки, за которым следует необязательный период и пробел, за которым следует O, за которым следует необязательный период, за которым следует пробел, за которым следует «Box», после чего следует еще.

1 голос
/ 11 ноября 2008

Возможно, лучше разместить на странице заявление об отказе, предупреждающее о невозможности доставки в почтовые ящики, в отличие от подтверждения ввода.

Более чем вероятно, если вы создадите регулярное выражение, которое улавливает большую часть P.O. В сценариях с коробками есть большая вероятность, что он также поймает вещи, которые вы не намеревались (например, клиент с названием улицы, содержащим буквы 'p' 'o' и 'box')

0 голосов
/ 03 апреля 2019

Из оригинального вопроса:

Я понимаю, что, вероятно, нет способа получить 100% уровень обнаружения, ...

На самом деле, есть.

Если адрес сначала проверяется и стандартизируется в формате USPS с использованием средства проверки адреса (компания, в которой я работаю, составляет YAddress ), то все P.O. Адреса ящиков без исключения будут записаны как «PO BOX ...». После этого вы можете сравнить их на предмет совпадения с точностью до 100%.

0 голосов
/ 28 сентября 2011

К сожалению, онлайн-программное обеспечение UPS позволяет P.O. Ящики нужно пройти, но они захлебнутся, как только они попадут в канал доставки. В нашем случае наш показатель отказа от корзины увеличился, когда мы попытались изящно предотвратить P.O. Коробки. Мы обнаружили, что гораздо выгоднее оставить это в покое, принять продажу, довести ее до сведения службы поддержки клиентов и позволить им решить эту проблему. Конечно, если у вас высокий уровень заболеваемости P.O Boxes, это может быть не так.

0 голосов
/ 02 декабря 2009

Что если оно не начинается с "PO Box .." или "P.O. Box"?

Пример:

Джон Шмидт | Серебряная Долина PO Box 3901 | Whereswaldoville, SI. 78946

Я использовал событие onblur для поля адреса, чтобы использовать функцию javascript indexOf для распознавания input.toUpperCase "PO BOX" || «P.O», то есть> = 0.

Если ни один из этих двух поисков не найден, возвращаемое значение равно -1, в противном случае возвращается начальная позиция строки, которая всегда будет 0 или более.

Это обеспечит ленивый набор текста, 'po box', 'p.o box', а также 'p.o. коробка "будет признана. Я полагаю, вы могли бы добавить 'по. коробка ".

Во всяком случае, условие вызывает ненавязчивое сообщение, показывающее, что «Мы не можем отправить на адрес почтового ящика». Это функция, позволяющая не видеть его, если он к вам не относится. В противном случае, для пользователей, которые этого не делают. Если js или css включены, они просто увидят сообщение. Единственный сбой в этом изящном ухудшении - это если у пользователя включен css, но не включен js (когда они просто не увидят сообщение вообще). Я только пришел Сегодня я найду решение, но если я подумаю о лучшем способе, я вернусь, чтобы опубликовать его здесь.

0 голосов
/ 12 ноября 2008

Относительно комментария ОП к ответу Джейсона Коко:

Поскольку вы можете добавить проверку правильности регулярного выражения к адресу доставки, я предполагаю, что у вас есть контроль над приложением (т. Е. У вас есть источник и вы можете изменить его). Если это так, то вы должны иметь возможность при получении отправленных данных проверить, должны ли они быть отправлены через USPS, FedEx или UPS, и отправить запрос соответствующему валидатору адреса конкретного грузоотправителя, получив все преимущества, предложенные в ответе Джейсона.

Сделав его специфичным для грузоотправителя, это также позволит вам избежать реализации правил «один размер подходит всем», таких как «нет почтовых ящиков, потому что UPS не доставляет их», даже если пользователь может выбрать - грузоотправители, которые доставляют на почтовые ящики.

0 голосов
/ 12 ноября 2008

Большинство поставщиков услуг доставки (например, FedEx) проверяют адрес доставки. Например, в веб-службах FedEx существует звонок для подтверждения адреса доставки и получения приблизительной стоимости. Это не только гарантирует, что адрес не является почтовым ящиком, но также гарантирует, что остальная часть адреса действительна.

0 голосов
/ 11 ноября 2008

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

...